home *** CD-ROM | disk | FTP | other *** search
/ Acorn Risc Technologies StrongARM CD-ROM / Acorn Risc Technologies StrongARM CD-ROM.iso / software / utils / multidsk / !MultiDesk_MakeMod < prev    next >
Unknown  |  1995-08-23  |  13.1 KB

open in: MacOS 8.1     |     Win98     |     DOS

view JSON data     |     view as text


This file was not able to be converted.
This format is not currently supported by dexvert.

ConfidenceProgramDetectionMatch TypeSupport
100% file data default



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 0d 00 01 4d ee 20 85 20 | ee 20 85 20 87 3a 20 f6 |...M. . |. . .: .|
|00000010| 3a 20 f1 20 3b 22 20 69 | 6e 20 21 4d 75 6c 74 69 |: . ;" i|n !Multi|
|00000020| 44 65 73 6b 2e 4d 61 6b | 65 4d 6f 64 2c 20 69 6e |Desk.Mak|eMod, in|
|00000030| 74 65 72 6e 61 6c 20 65 | 72 72 6f 72 20 63 6f 64 |ternal e|rror cod|
|00000040| 65 20 22 3b 9e 3b 20 22 | 2e 22 3a 20 e0 0d 00 02 |e ";.; "|.": ....|
|00000050| 04 0d 00 03 16 64 65 74 | 65 63 74 5f 68 6f 74 6b |.....det|ect_hotk|
|00000060| 65 79 25 20 3d 20 b9 0d | 00 04 04 0d 00 05 20 61 |ey% = ..|...... a|
|00000070| 70 70 6e 61 6d 65 24 20 | 20 20 20 20 20 20 3d 20 |ppname$ | = |
|00000080| 22 4d 75 6c 74 69 44 65 | 73 6b 22 0d 00 06 28 6d |"MultiDe|sk"...(m|
|00000090| 6f 64 75 6c 65 6e 61 6d | 65 24 20 20 20 20 3d 20 |odulenam|e$ = |
|000000a0| 61 70 70 6e 61 6d 65 24 | 20 2b 20 22 4d 6f 64 75 |appname$| + "Modu|
|000000b0| 6c 65 22 0d 00 07 28 66 | 69 6c 74 65 72 6e 61 6d |le"...(f|ilternam|
|000000c0| 65 24 20 20 20 20 3d 20 | 61 70 70 6e 61 6d 65 24 |e$ = |appname$|
|000000d0| 20 2b 20 22 46 69 6c 74 | 65 72 22 0d 00 08 04 0d | + "Filt|er".....|
|000000e0| 00 09 04 0d 00 0a 04 0d | 00 0b 4c f4 20 54 68 65 |........|..L. The|
|000000f0| 73 65 20 61 72 65 20 74 | 68 65 20 6b 65 79 20 6e |se are t|he key n|
|00000100| 75 6d 62 65 72 73 20 66 | 6f 72 20 4f 53 20 6b 65 |umbers f|or OS ke|
|00000110| 79 20 75 70 2f 64 6f 77 | 6e 20 65 76 65 6e 74 73 |y up/dow|n events|
|00000120| 20 28 52 4f 20 33 20 50 | 52 4d 73 20 31 2d 31 35 | (RO 3 P|RMs 1-15|
|00000130| 36 29 2e 0d 00 0c 19 72 | 61 77 5f 75 70 25 20 20 |6).....r|aw_up% |
|00000140| 20 20 20 20 20 20 20 20 | 3d 20 38 39 0d 00 0d 19 | |= 89....|
|00000150| 72 61 77 5f 64 6f 77 6e | 25 20 20 20 20 20 20 20 |raw_down|% |
|00000160| 20 3d 20 39 39 0d 00 0e | 1a 72 61 77 5f 72 69 67 | = 99...|.raw_rig|
|00000170| 68 74 25 20 20 20 20 20 | 20 20 3d 20 31 30 30 0d |ht% | = 100.|
|00000180| 00 0f 19 72 61 77 5f 6c | 65 66 74 25 20 20 20 20 |...raw_l|eft% |
|00000190| 20 20 20 20 3d 20 39 38 | 0d 00 10 04 0d 00 11 3a | = 98|.......:|
|000001a0| f4 20 54 68 65 73 65 20 | 61 72 65 20 74 68 65 20 |. These |are the |
|000001b0| 6b 65 79 20 6e 75 6d 62 | 65 72 73 20 66 6f 72 20 |key numb|ers for |
|000001c0| 57 69 6d 70 20 65 76 65 | 6e 74 5f 4b 45 59 20 65 |Wimp eve|nt_KEY e|
|000001d0| 76 65 6e 74 73 2e 0d 00 | 12 1a 6b 65 79 5f 63 75 |vents...|..key_cu|
|000001e0| 72 73 6f 72 75 70 25 20 | 20 20 20 3d 20 33 39 39 |rsorup% | = 399|
|000001f0| 0d 00 13 1a 6b 65 79 5f | 63 75 72 73 6f 72 64 6f |....key_|cursordo|
|00000200| 77 6e 25 20 20 3d 20 33 | 39 38 0d 00 14 1a 6b 65 |wn% = 3|98....ke|
|00000210| 79 5f 63 75 72 73 6f 72 | 72 69 67 68 74 25 20 3d |y_cursor|right% =|
|00000220| 20 33 39 37 0d 00 15 1a | 6b 65 79 5f 63 75 72 73 | 397....|key_curs|
|00000230| 6f 72 6c 65 66 74 25 20 | 20 3d 20 33 39 36 0d 00 |orleft% | = 396..|
|00000240| 16 04 0d 00 17 3c 61 6c | 74 5f 6b 65 79 25 20 20 |.....<al|t_key% |
|00000250| 20 20 20 20 20 20 20 3d | 20 32 35 36 2d 33 3a 20 | =| 256-3: |
|00000260| f4 20 69 6e 6b 65 79 20 | 63 6f 64 65 20 66 6f 72 |. inkey |code for|
|00000270| 20 74 68 65 20 3c 61 6c | 74 3e 20 6b 65 79 0d 00 | the <al|t> key..|
|00000280| 18 04 0d 00 19 30 6d 75 | 6c 74 69 64 65 73 6b 5f |.....0mu|ltidesk_|
|00000290| 74 61 73 6b 25 20 3d 20 | a4 46 69 6e 64 54 61 73 |task% = |.FindTas|
|000002a0| 6b 48 61 6e 64 6c 65 28 | 20 61 70 70 6e 61 6d 65 |kHandle(| appname|
|000002b0| 24 29 0d 00 1a 5f e7 20 | 6d 75 6c 74 69 64 65 73 |$)..._. |multides|
|000002c0| 6b 5f 74 61 73 6b 25 20 | 3d 20 30 20 85 20 30 2c |k_task% |= 0 . 0,|
|000002d0| 20 22 21 22 20 2b 20 61 | 70 70 6e 61 6d 65 24 20 | "!" + a|ppname$ |
|000002e0| 2b 20 22 2e 4d 61 6b 65 | 4d 6f 64 20 63 61 6e 27 |+ ".Make|Mod can'|
|000002f0| 74 20 66 69 6e 64 20 74 | 68 65 20 22 20 2b 20 61 |t find t|he " + a|
|00000300| 70 70 6e 61 6d 65 24 20 | 2b 20 22 20 74 61 73 6b |ppname$ |+ " task|
|00000310| 22 0d 00 1b 04 0d 00 1c | 35 6d 61 73 6b 25 20 3d |".......|5mask% =|
|00000320| 20 ac 20 28 32 35 36 29 | 3a 20 f4 20 4c 65 74 73 | . (256)|: . Lets|
|00000330| 20 6f 6e 6c 79 20 65 76 | 65 6e 74 5f 4b 45 59 27 | only ev|ent_KEY'|
|00000340| 73 20 74 68 72 6f 75 67 | 68 2e 0d 00 1d 04 0d 00 |s throug|h.......|
|00000350| 1e 04 0d 00 1f 45 f4 20 | 47 65 74 20 69 6e 66 6f |.....E. |Get info|
|00000360| 20 6f 6e 20 74 68 65 20 | 57 69 6e 64 6f 77 4d 61 | on the |WindowMa|
|00000370| 6e 61 67 65 72 20 6d 6f | 64 75 6c 65 2c 20 73 6f |nager mo|dule, so|
|00000380| 20 77 65 20 63 61 6e 20 | 63 6c 61 69 6d 20 69 74 | we can |claim it|
|00000390| 73 20 53 57 49 73 2e 0d | 00 20 42 c8 99 20 22 4f |s SWIs..|. B.. "O|
|000003a0| 53 5f 4d 6f 64 75 6c 65 | 22 2c 20 31 38 2c 20 22 |S_Module|", 18, "|
|000003b0| 57 69 6e 64 6f 77 4d 61 | 6e 61 67 65 72 22 20 b8 |WindowMa|nager" .|
|000003c0| 20 2c 2c 2c 20 6f 6c 64 | 5f 6d 6f 64 75 6c 65 25 | ,,, old|_module%|
|000003d0| 2c 20 6f 6c 64 5f 70 77 | 25 0d 00 21 1f 73 77 69 |, old_pw|%..!.swi|
|000003e0| 63 68 75 6e 6b 25 20 3d | 20 6f 6c 64 5f 6d 6f 64 |chunk% =| old_mod|
|000003f0| 75 6c 65 25 21 26 31 63 | 0d 00 22 30 6f 6c 64 5f |ule%!&1c|.."0old_|
|00000400| 73 77 69 63 6f 64 65 25 | 20 3d 20 6f 6c 64 5f 6d |swicode%| = old_m|
|00000410| 6f 64 75 6c 65 25 20 2b | 20 6f 6c 64 5f 6d 6f 64 |odule% +| old_mod|
|00000420| 75 6c 65 25 21 26 32 30 | 0d 00 23 47 f4 20 54 68 |ule%!&20|..#G. Th|
|00000430| 69 73 20 69 73 20 74 68 | 65 20 61 64 64 72 65 73 |is is th|e addres|
|00000440| 73 20 6f 66 20 57 69 6e | 64 6f 77 4d 61 6e 61 67 |s of Win|dowManag|
|00000450| 65 72 27 73 20 53 57 49 | 20 63 6f 64 65 2c 20 77 |er's SWI| code, w|
|00000460| 68 69 63 68 20 77 65 20 | 6a 75 6d 70 20 74 6f 0d |hich we |jump to.|
|00000470| 00 24 29 f4 20 61 66 74 | 65 72 20 77 65 27 76 65 |.$). aft|er we've|
|00000480| 20 69 6e 74 65 72 63 65 | 70 74 65 64 20 57 69 6d | interce|pted Wim|
|00000490| 70 5f 20 53 57 49 73 2e | 0d 00 25 04 0d 00 26 04 |p_ SWIs.|..%...&.|
|000004a0| 0d 00 27 04 0d 00 28 15 | de 20 63 6f 64 65 73 70 |..'...(.|. codesp|
|000004b0| 61 63 65 25 20 32 30 34 | 38 0d 00 29 04 0d 00 2a |ace% 204|8..)...*|
|000004c0| 14 e3 20 70 61 73 73 30 | 25 20 3d 20 30 20 b8 20 |.. pass0|% = 0 . |
|000004d0| 31 0d 00 2b 0d 50 25 20 | 20 20 20 3d 20 30 0d 00 |1..+.P% | = 0..|
|000004e0| 2c 16 4f 25 20 20 20 20 | 3d 20 63 6f 64 65 73 70 |,.O% |= codesp|
|000004f0| 61 63 65 25 0d 00 2d 4b | 4c 25 20 20 20 20 3d 20 |ace%..-K|L% = |
|00000500| 63 6f 64 65 73 70 61 63 | 65 25 20 2b 20 32 30 34 |codespac|e% + 204|
|00000510| 38 3a 20 f4 20 70 72 65 | 76 65 6e 74 73 20 61 73 |8: . pre|vents as|
|00000520| 73 65 6d 62 6c 65 72 20 | 66 72 6f 6d 20 6f 76 65 |sembler |from ove|
|00000530| 72 77 72 69 74 69 6e 67 | 20 6d 65 6d 6f 72 79 0d |rwriting| memory.|
|00000540| 00 2e 1c 70 61 73 73 25 | 20 3d 20 32 2a 70 61 73 |...pass%| = 2*pas|
|00000550| 73 30 25 20 2b 20 34 20 | 2b 20 38 0d 00 2f 04 0d |s0% + 4 |+ 8../..|
|00000560| 00 30 0f 5b 20 4f 50 54 | 20 70 61 73 73 25 0d 00 |.0.[ OPT| pass%..|
|00000570| 31 04 0d 00 32 04 0d 00 | 33 12 3b 20 4d 6f 64 75 |1...2...|3.; Modu|
|00000580| 6c 65 20 73 70 65 63 73 | 0d 00 34 04 0d 00 35 39 |le specs|..4...59|
|00000590| 20 20 20 20 20 20 20 20 | 45 51 55 44 20 20 20 20 | |EQUD |
|000005a0| 30 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |0 | |
|000005b0| 20 20 20 20 20 20 20 20 | 3b 20 4e 6f 20 73 74 61 | |; No sta|
|000005c0| 72 74 75 70 2e 0d 00 36 | 1e 20 20 20 20 20 20 20 |rtup...6|. |
|000005d0| 20 45 51 55 44 20 20 20 | 20 69 6e 69 74 69 61 6c | EQUD | initial|
|000005e0| 69 73 65 0d 00 37 1c 20 | 20 20 20 20 20 20 20 45 |ise..7. | E|
|000005f0| 51 55 44 20 20 20 20 66 | 69 6e 61 6c 69 73 65 0d |QUD f|inalise.|
|00000600| 00 38 4e 20 20 20 20 20 | 20 20 20 45 51 55 44 20 |.8N | EQUD |
|00000610| 20 20 20 30 20 20 20 20 | 20 20 20 20 20 20 20 20 | 0 | |
|00000620| 20 20 20 20 20 20 20 20 | 20 20 20 3b 20 4e 6f 20 | | ; No |
|00000630| 73 65 72 76 69 63 65 20 | 63 61 6c 6c 73 20 61 72 |service |calls ar|
|00000640| 65 20 64 65 61 6c 74 20 | 77 69 74 68 2e 0d 00 39 |e dealt |with...9|
|00000650| 19 20 20 20 20 20 20 20 | 20 45 51 55 44 20 20 20 |. | EQUD |
|00000660| 20 74 69 74 6c 65 0d 00 | 3a 1e 20 20 20 20 20 20 | title..|:. |
|00000670| 20 20 45 51 55 44 20 20 | 20 20 68 65 6c 70 73 74 | EQUD | helpst|
|00000680| 72 69 6e 67 0d 00 3b 3c | 20 20 20 20 20 20 20 20 |ring..;<| |
|00000690| 45 51 55 44 20 20 20 20 | 30 20 20 20 20 20 20 20 |EQUD |0 |
|000006a0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000006b0| 3b 20 4e 6f 20 68 65 6c | 70 20 74 61 62 6c 65 2e |; No hel|p table.|
|000006c0| 0d 00 3c 4f 20 20 20 20 | 20 20 20 20 45 51 55 44 |..<O | EQUD|
|000006d0| 20 20 20 20 73 77 69 63 | 68 75 6e 6b 25 20 20 20 | swic|hunk% |
|000006e0| 20 20 20 20 20 20 20 20 | 20 20 20 20 3b 20 57 69 | | ; Wi|
|000006f0| 6e 64 6f 77 4d 61 6e 61 | 67 65 72 27 73 20 53 57 |ndowMana|ger's SW|
|00000700| 49 20 63 68 75 6e 6b 20 | 6e 75 6d 62 65 72 2e 0d |I chunk |number..|
|00000710| 00 3d 36 20 20 20 20 20 | 20 20 20 45 51 55 44 20 |.=6 | EQUD |
|00000720| 20 20 20 73 77 69 63 6f | 64 65 20 20 20 20 20 20 | swico|de |
|00000730| 20 20 20 20 20 20 20 20 | 20 20 20 3b 20 53 57 49 | | ; SWI|
|00000740| 20 63 6f 64 65 0d 00 3e | 1d 20 20 20 20 20 20 20 | code..>|. |
|00000750| 20 45 51 55 44 20 20 20 | 20 73 77 69 5f 74 61 62 | EQUD | swi_tab|
|00000760| 6c 65 0d 00 3f 3a 20 20 | 20 20 20 20 20 20 45 51 |le..?: | EQ|
|00000770| 55 44 20 20 20 20 30 20 | 20 20 20 20 20 20 20 20 |UD 0 | |
|00000780| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 3b 20 | | ; |
|00000790| 4e 6f 20 53 57 49 20 63 | 6f 64 65 2e 0d 00 40 04 |No SWI c|ode...@.|
|000007a0| 0d 00 41 04 0d 00 42 26 | 3b 20 53 74 6f 72 61 67 |..A...B&|; Storag|
|000007b0| 65 20 73 70 61 63 65 20 | 66 6f 72 20 63 6f 6e 73 |e space |for cons|
|000007c0| 74 61 6e 74 73 20 65 74 | 63 2e 0d 00 43 04 0d 00 |tants et|c...C...|
|000007d0| 44 3c 2e 4d 44 5f 74 61 | 73 6b 68 61 6e 64 6c 65 |D<.MD_ta|skhandle|
|000007e0| 5f 6c 6f 3a 20 20 20 20 | 20 20 45 51 55 44 20 6d |_lo: | EQUD m|
|000007f0| 75 6c 74 69 64 65 73 6b | 5f 74 61 73 6b 25 20 80 |ultidesk|_task% .|
|00000800| 20 26 30 30 30 30 46 46 | 46 46 0d 00 45 30 2e 4d | &0000FF|FF..E0.M|
|00000810| 44 5f 74 61 73 6b 68 61 | 6e 64 6c 65 3a 20 20 20 |D_taskha|ndle: |
|00000820| 20 20 20 20 20 20 45 51 | 55 44 20 6d 75 6c 74 69 | EQ|UD multi|
|00000830| 64 65 73 6b 5f 74 61 73 | 6b 25 0d 00 46 04 0d 00 |desk_tas|k%..F...|
|00000840| 47 4e 2e 6d 61 73 6b 3a | 20 20 20 20 20 20 20 20 |GN.mask:| |
|00000850| 20 20 20 20 20 20 20 20 | 20 20 45 51 55 44 20 6d | | EQUD m|
|00000860| 61 73 6b 25 20 20 20 20 | 20 20 3b 20 6c 65 74 73 |ask% | ; lets|
|00000870| 20 74 68 72 6f 75 67 68 | 20 65 76 65 6e 74 5f 4b | through| event_K|
|00000880| 45 59 73 20 66 6f 72 20 | 74 68 65 20 0d 00 48 3a |EYs for |the ..H:|
|00000890| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000008a0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000008b0| 20 20 20 20 20 20 20 20 | 3b 20 70 6f 73 74 2d 66 | |; post-f|
|000008c0| 69 6c 74 65 72 2e 0d 00 | 49 04 0d 00 4a 3b 2e 74 |ilter...|I...J;.t|
|000008d0| 69 74 6c 65 3a 20 20 20 | 20 20 20 20 20 20 20 20 |itle: | |
|000008e0| 20 20 20 20 20 20 45 51 | 55 53 20 6d 6f 64 75 6c | EQ|US modul|
|000008f0| 65 6e 61 6d 65 24 3a 20 | 45 51 55 42 20 30 3a 20 |ename$: |EQUB 0: |
|00000900| 41 4c 49 47 4e 0d 00 4b | 3b 2e 66 69 6c 74 65 72 |ALIGN..K|;.filter|
|00000910| 6e 61 6d 65 3a 20 20 20 | 20 20 20 20 20 20 20 20 |name: | |
|00000920| 20 45 51 55 53 20 66 69 | 6c 74 65 72 6e 61 6d 65 | EQUS fi|ltername|
|00000930| 24 3a 20 45 51 55 42 20 | 30 3a 20 41 4c 49 47 4e |$: EQUB |0: ALIGN|
|00000940| 0d 00 4c 04 0d 00 4d 33 | 2e 70 6f 6c 6c 62 6c 6f |..L...M3|.pollblo|
|00000950| 63 6b 3a 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |ck: | |
|00000960| 45 51 55 53 20 c4 20 36 | 34 2c 20 bd 28 30 29 29 |EQUS . 6|4, .(0))|
|00000970| 3a 20 41 4c 49 47 4e 0d | 00 4e 04 0d 00 4f 53 2e |: ALIGN.|.N...OS.|
|00000980| 68 65 6c 70 73 74 72 69 | 6e 67 3a 20 20 20 20 20 |helpstri|ng: |
|00000990| 20 20 20 20 20 20 20 45 | 51 55 53 20 6d 6f 64 75 | E|QUS modu|
|000009a0| 6c 65 6e 61 6d 65 24 2b | bd 28 39 29 2b 22 31 2e |lename$+|.(9)+"1.|
|000009b0| 30 31 20 28 32 36 20 41 | 70 72 20 31 39 39 35 29 |01 (26 A|pr 1995)|
|000009c0| 20 4a 75 6c 69 61 6e 20 | 53 6d 69 74 68 22 0d 00 | Julian |Smith"..|
|000009d0| 50 29 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |P) | |
|000009e0| 20 20 20 20 20 20 20 20 | 20 20 45 51 55 42 20 30 | | EQUB 0|
|000009f0| 3a 20 41 4c 49 47 4e 0d | 00 51 04 0d 00 52 2d 2e |: ALIGN.|.Q...R-.|
|00000a00| 6f 6c 64 73 77 69 63 6f | 64 65 3a 20 20 20 20 20 |oldswico|de: |
|00000a10| 20 20 20 20 20 20 20 45 | 51 55 44 20 6f 6c 64 5f | E|QUD old_|
|00000a20| 73 77 69 63 6f 64 65 25 | 0d 00 53 28 2e 6f 6c 64 |swicode%|..S(.old|
|00000a30| 70 77 3a 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |pw: | |
|00000a40| 20 20 20 20 45 51 55 44 | 20 6f 6c 64 5f 70 77 25 | EQUD| old_pw%|
|00000a50| 0d 00 54 04 0d 00 55 05 | 5d 0d 00 56 04 0d 00 57 |..T...U.|]..V...W|
|00000a60| 04 0d 00 58 04 0d 00 59 | 04 0d 00 5a 0f 5b 20 4f |...X...Y|...Z.[ O|
|00000a70| 50 54 20 70 61 73 73 25 | 0d 00 5b 04 0d 00 5c 3d |PT pass%|..[...\=|
|00000a80| 2e 73 77 69 63 6f 64 65 | 20 20 20 20 20 20 20 20 |.swicode| |
|00000a90| 3b 20 57 65 20 67 65 74 | 20 66 69 72 73 74 20 72 |; We get| first r|
|00000aa0| 65 66 75 73 61 6c 20 6f | 6e 20 61 6c 6c 20 57 69 |efusal o|n all Wi|
|00000ab0| 6d 70 5f 20 53 57 49 73 | 2e 0d 00 5d 4f 20 20 20 |mp_ SWIs|...]O |
|00000ac0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 3b 20 62 | | ; b|
|00000ad0| 65 63 61 75 73 65 20 74 | 68 69 73 20 6d 6f 64 75 |ecause t|his modu|
|00000ae0| 6c 65 20 63 6c 61 69 6d | 73 20 74 68 65 20 57 69 |le claim|s the Wi|
|00000af0| 6e 64 6f 77 4d 61 6e 61 | 67 65 72 27 73 20 53 57 |ndowMana|ger's SW|
|00000b00| 49 20 63 68 75 6e 6b 2e | 0d 00 5e 50 20 20 20 20 |I chunk.|..^P |
|00000b10| 20 20 20 20 20 20 20 20 | 20 20 20 20 3b 20 57 65 | | ; We|
|00000b20| 20 61 6c 77 61 79 73 20 | 70 61 73 73 20 63 6f 6e | always |pass con|
|00000b30| 74 72 6f 6c 20 6f 6e 20 | 74 6f 20 74 68 65 20 57 |trol on |to the W|
|00000b40| 69 6e 64 6f 77 4d 61 6e | 61 67 65 72 27 73 20 53 |indowMan|ager's S|
|00000b50| 57 49 20 63 6f 64 65 2c | 0d 00 5f 4d 20 20 20 20 |WI code,|.._M |
|00000b60| 20 20 20 20 20 20 20 20 | 20 20 20 20 3b 20 61 73 | | ; as|
|00000b70| 20 77 65 20 61 72 65 20 | 6a 75 73 74 20 6f 62 73 | we are |just obs|
|00000b80| 65 72 76 69 6e 67 20 77 | 69 6e 64 6f 77 2d 6d 6f |erving w|indow-mo|
|00000b90| 76 65 6d 65 6e 74 73 2c | 20 72 61 74 68 65 72 20 |vements,| rather |
|00000ba0| 74 68 61 6e 20 0d 00 60 | 28 20 20 20 20 20 20 20 |than ..`|( |
|00000bb0| 20 20 20 20 20 20 20 20 | 20 3b 20 64 65 61 6c 69 | | ; deali|
|00000bc0| 6e 67 20 77 69 74 68 20 | 74 68 65 6d 2e 0d 00 61 |ng with |them...a|
|00000bd0| 04 0d 00 62 4d 20 20 20 | 20 20 20 20 20 43 4d 50 |...bM | CMP|
|00000be0| 20 20 20 20 20 72 31 31 | 2c 20 23 28 20 26 34 30 | r11|, #( &40|
|00000bf0| 30 43 35 20 2d 20 26 34 | 30 30 43 30 29 20 3b 20 |0C5 - &4|00C0) ; |
|00000c00| 53 57 49 20 6e 75 6d 62 | 65 72 20 66 6f 72 20 57 |SWI numb|er for W|
|00000c10| 69 6d 70 5f 4f 70 65 6e | 57 69 6e 64 6f 77 0d 00 |imp_Open|Window..|
|00000c20| 63 1c 20 20 20 20 20 20 | 20 20 42 45 51 20 20 20 |c. | BEQ |
|00000c30| 20 20 73 65 6e 64 6f 70 | 65 6e 0d 00 64 4e 20 20 | sendop|en..dN |
|00000c40| 20 20 20 20 20 20 43 4d | 50 20 20 20 20 20 72 31 | CM|P r1|
|00000c50| 31 2c 20 23 28 20 26 34 | 30 30 43 36 20 2d 20 26 |1, #( &4|00C6 - &|
|00000c60| 34 30 30 43 30 29 20 3b | 20 53 57 49 20 6e 75 6d |400C0) ;| SWI num|
|00000c70| 62 65 72 20 66 6f 72 20 | 57 69 6d 70 5f 43 6c 6f |ber for |Wimp_Clo|
|00000c80| 73 65 57 69 6e 64 6f 77 | 0d 00 65 1d 20 20 20 20 |seWindow|..e. |
|00000c90| 20 20 20 20 42 45 51 20 | 20 20 20 20 73 65 6e 64 | BEQ | send|
|00000ca0| 63 6c 6f 73 65 0d 00 66 | 4f 20 20 20 20 20 20 20 |close..f|O |
|00000cb0| 20 43 4d 50 20 20 20 20 | 20 72 31 31 2c 20 23 28 | CMP | r11, #(|
|00000cc0| 20 26 34 30 30 43 33 20 | 2d 20 26 34 30 30 43 30 | &400C3 |- &400C0|
|00000cd0| 29 20 3b 20 53 57 49 20 | 6e 75 6d 62 65 72 20 66 |) ; SWI |number f|
|00000ce0| 6f 72 20 57 69 6d 70 5f | 44 65 6c 65 74 65 57 69 |or Wimp_|DeleteWi|
|00000cf0| 6e 64 6f 77 0d 00 67 1d | 20 20 20 20 20 20 20 20 |ndow..g.| |
|00000d00| 42 45 51 20 20 20 20 20 | 73 65 6e 64 63 6c 6f 73 |BEQ |sendclos|
|00000d10| 65 0d 00 68 04 0d 00 69 | 51 20 20 20 20 20 20 20 |e..h...i|Q |
|00000d20| 20 3b 20 50 61 73 73 20 | 74 68 65 20 53 57 49 20 | ; Pass |the SWI |
|00000d30| 6f 6e 20 74 6f 20 74 68 | 65 20 6f 72 69 67 69 6e |on to th|e origin|
|00000d40| 61 6c 20 57 69 6e 64 6f | 77 4d 61 6e 61 67 65 72 |al Windo|wManager|
|00000d50| 20 6d 6f 64 75 6c 65 27 | 73 20 53 57 49 2d 68 61 | module'|s SWI-ha|
|00000d60| 6e 64 6c 69 6e 67 0d 00 | 6a 4e 20 20 20 20 20 20 |ndling..|jN |
|00000d70| 20 20 3b 20 63 6f 64 65 | 2e 20 4d 75 73 74 20 61 | ; code|. Must a|
|00000d80| 6c 73 6f 20 67 69 76 65 | 20 74 68 65 20 57 69 6e |lso give| the Win|
|00000d90| 64 6f 77 4d 61 6e 61 67 | 65 72 20 2a 69 74 27 73 |dowManag|er *it's|
|00000da0| 2a 20 72 31 32 20 76 61 | 6c 75 65 2c 20 72 61 74 |* r12 va|lue, rat|
|00000db0| 68 65 72 20 0d 00 6b 1a | 20 20 20 20 20 20 20 20 |her ..k.| |
|00000dc0| 3b 20 74 68 61 6e 20 6f | 75 72 73 2e 2e 2e 0d 00 |; than o|urs.....|
|00000dd0| 6c 04 0d 00 6d 1e 20 20 | 20 20 20 20 20 20 41 44 |l...m. | AD|
|00000de0| 52 20 20 20 20 20 72 31 | 32 2c 20 6f 6c 64 70 77 |R r1|2, oldpw|
|00000df0| 0d 00 6e 23 20 20 20 20 | 20 20 20 20 4c 44 52 20 |..n# | LDR |
|00000e00| 20 20 20 20 50 43 2c 20 | 20 6f 6c 64 73 77 69 63 | PC, | oldswic|
|00000e10| 6f 64 65 0d 00 6f 04 0d | 00 70 42 2e 73 65 6e 64 |ode..o..|.pB.send|
|00000e20| 6f 70 65 6e 20 20 20 20 | 20 20 20 3b 20 53 6f 6d |open | ; Som|
|00000e30| 65 6f 6e 65 20 69 73 20 | 6d 61 6b 69 6e 67 20 61 |eone is |making a|
|00000e40| 20 63 61 6c 6c 20 74 6f | 20 57 69 6d 70 5f 4f 70 | call to| Wimp_Op|
|00000e50| 65 6e 57 69 6e 64 6f 77 | 2e 0d 00 71 04 0d 00 72 |enWindow|...q...r|
|00000e60| 28 20 20 20 20 20 20 20 | 20 53 54 4d 46 44 20 20 |( | STMFD |
|00000e70| 20 72 31 33 21 2c 20 7b | 20 72 30 2d 72 31 32 2c | r13!, {| r0-r12,|
|00000e80| 20 72 31 34 7d 0d 00 73 | 0c 20 20 20 20 20 20 20 | r14}..s|. |
|00000e90| 20 0d 00 74 39 20 20 20 | 20 20 20 20 20 3b 20 43 | ..t9 | ; C|
|00000ea0| 68 65 63 6b 20 77 68 65 | 74 68 65 72 20 4d 75 6c |heck whe|ther Mul|
|00000eb0| 74 69 44 65 73 6b 20 69 | 73 20 74 68 65 20 63 75 |tiDesk i|s the cu|
|00000ec0| 72 72 65 6e 74 20 74 61 | 73 6b 0d 00 75 1a 20 20 |rrent ta|sk..u. |
|00000ed0| 20 20 20 20 20 20 4d 4f | 56 20 20 20 20 20 72 30 | MO|V r0|
|00000ee0| 2c 20 23 35 0d 00 76 27 | 20 20 20 20 20 20 20 20 |, #5..v'| |
|00000ef0| 53 57 49 20 20 20 20 20 | 22 58 57 69 6d 70 5f 52 |SWI |"XWimp_R|
|00000f00| 65 61 64 53 79 73 49 6e | 66 6f 22 0d 00 77 25 20 |eadSysIn|fo"..w% |
|00000f10| 20 20 20 20 20 20 20 4c | 44 52 20 20 20 20 20 72 | L|DR r|
|00000f20| 31 2c 20 4d 44 5f 74 61 | 73 6b 68 61 6e 64 6c 65 |1, MD_ta|skhandle|
|00000f30| 0d 00 78 1a 20 20 20 20 | 20 20 20 20 43 4d 50 20 |..x. | CMP |
|00000f40| 20 20 20 20 72 30 2c 20 | 72 31 0d 00 79 28 20 20 | r0, |r1..y( |
|00000f50| 20 20 20 20 20 20 4c 44 | 4d 46 44 20 20 20 72 31 | LD|MFD r1|
|00000f60| 33 21 2c 20 7b 20 72 30 | 2d 72 31 32 2c 20 72 31 |3!, { r0|-r12, r1|
|00000f70| 34 7d 0d 00 7a 49 20 20 | 20 20 20 20 20 20 42 45 |4}..zI | BE|
|00000f80| 51 20 20 20 20 20 69 6e | 74 65 72 63 65 70 74 71 |Q in|terceptq|
|00000f90| 75 69 74 20 20 20 20 20 | 20 20 20 20 20 20 20 3b |uit | ;|
|00000fa0| 20 49 67 6e 6f 72 65 20 | 69 66 20 63 75 72 72 65 | Ignore |if curre|
|00000fb0| 6e 74 20 74 61 73 6b 20 | 69 73 20 0d 00 7b 39 20 |nt task |is ..{9 |
|00000fc0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000fd0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000fe0| 20 20 20 20 20 20 20 20 | 3b 20 4d 75 6c 74 69 44 | |; MultiD|
|00000ff0| 65 73 6b 2e 0d 00 7c 0c | 20 20 20 20 20 20 20 20 |esk...|.| |
|00001000| 0d 00 7d 0c 20 20 20 20 | 20 20 20 20 0d 00 7e 4a |..}. | ..~J|
|00001010| 20 20 20 20 20 20 20 20 | 3b 20 49 66 20 77 65 20 | |; If we |
|00001020| 72 65 61 63 68 20 68 65 | 72 65 2c 20 73 6f 6d 65 |reach he|re, some|
|00001030| 20 74 61 73 6b 20 6f 74 | 68 65 72 20 74 68 61 6e | task ot|her than|
|00001040| 20 4d 75 6c 74 69 44 65 | 73 6b 20 68 61 73 20 63 | MultiDe|sk has c|
|00001050| 61 6c 6c 65 64 20 0d 00 | 7f 4d 20 20 20 20 20 20 |alled ..|.M |
|00001060| 20 20 3b 20 57 69 6d 70 | 5f 4f 70 65 6e 57 69 6e | ; Wimp|_OpenWin|
|00001070| 64 6f 77 2c 20 73 6f 20 | 77 65 20 73 65 6e 64 20 |dow, so |we send |
|00001080| 61 6e 20 65 76 65 6e 74 | 5f 4f 50 45 4e 20 74 6f |an event|_OPEN to|
|00001090| 20 4d 75 6c 74 69 44 65 | 73 6b 20 77 69 74 68 20 | MultiDe|sk with |
|000010a0| 74 68 65 0d 00 80 29 20 | 20 20 20 20 20 20 20 3b |the...) | ;|
|000010b0| 20 57 69 6d 70 5f 4f 70 | 65 6e 57 69 6e 64 6f 77 | Wimp_Op|enWindow|
|000010c0| 20 70 61 72 61 6d 65 74 | 65 72 73 2e 0d 00 81 0d | paramet|ers.....|
|000010d0| 20 20 20 20 20 20 20 20 | 3b 0d 00 82 4d 20 20 20 | |;...M |
|000010e0| 20 20 20 20 20 3b 20 4d | 75 6c 74 69 44 65 73 6b | ; M|ultiDesk|
|000010f0| 20 63 61 6e 20 74 68 65 | 6e 20 75 73 65 20 74 68 | can the|n use th|
|00001100| 65 20 69 6e 66 6f 20 74 | 6f 20 75 70 64 61 74 65 |e info t|o update|
|00001110| 20 69 74 27 73 20 76 69 | 72 74 75 61 6c 20 64 65 | it's vi|rtual de|
|00001120| 73 6b 74 6f 70 20 0d 00 | 83 16 20 20 20 20 20 20 |sktop ..|.. |
|00001130| 20 20 3b 20 64 69 73 70 | 6c 61 79 2e 0d 00 84 0c | ; disp|lay.....|
|00001140| 20 20 20 20 20 20 20 20 | 0d 00 85 28 20 20 20 20 | |...( |
|00001150| 20 20 20 20 53 54 4d 46 | 44 20 20 20 72 31 33 21 | STMF|D r13!|
|00001160| 2c 20 7b 20 72 30 2d 72 | 31 32 2c 20 72 31 34 7d |, { r0-r|12, r14}|
|00001170| 0d 00 86 27 20 20 20 20 | 20 20 20 20 4c 44 52 20 |...' | LDR |
|00001180| 20 20 20 20 72 32 2c 20 | 20 20 4d 44 5f 74 61 73 | r2, | MD_tas|
|00001190| 6b 68 61 6e 64 6c 65 0d | 00 87 1c 20 20 20 20 20 |khandle.|... |
|000011a0| 20 20 20 4d 4f 56 20 20 | 20 20 20 72 30 2c 20 20 | MOV | r0, |
|000011b0| 20 23 32 0d 00 88 27 20 | 20 20 20 20 20 20 20 53 | #2...' | S|
|000011c0| 57 49 20 20 20 20 20 22 | 58 57 69 6d 70 5f 53 65 |WI "|XWimp_Se|
|000011d0| 6e 64 4d 65 73 73 61 67 | 65 22 0d 00 89 28 20 20 |ndMessag|e"...( |
|000011e0| 20 20 20 20 20 20 4c 44 | 4d 46 44 20 20 20 72 31 | LD|MFD r1|
|000011f0| 33 21 2c 20 7b 20 72 30 | 2d 72 31 32 2c 20 72 31 |3!, { r0|-r12, r1|
|00001200| 34 7d 0d 00 8a 1e 20 20 | 20 20 20 20 20 20 41 44 |4}.... | AD|
|00001210| 52 20 20 20 20 20 72 31 | 32 2c 20 6f 6c 64 70 77 |R r1|2, oldpw|
|00001220| 0d 00 8b 4e 20 20 20 20 | 20 20 20 20 4c 44 52 20 |...N | LDR |
|00001230| 20 20 20 20 50 43 2c 20 | 20 6f 6c 64 73 77 69 63 | PC, | oldswic|
|00001240| 6f 64 65 20 20 20 20 20 | 20 20 20 20 20 3b 20 42 |ode | ; B|
|00001250| 72 61 6e 63 68 20 74 6f | 20 74 68 65 20 53 57 49 |ranch to| the SWI|
|00001260| 2d 68 61 6e 64 6c 69 6e | 67 20 63 6f 64 65 0d 00 |-handlin|g code..|
|00001270| 8c 4f 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |.O | |
|00001280| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001290| 20 20 20 20 20 20 20 20 | 20 20 20 3b 20 69 6e 73 | | ; ins|
|000012a0| 69 64 65 20 74 68 65 20 | 57 69 6e 64 6f 77 4d 61 |ide the |WindowMa|
|000012b0| 6e 61 67 65 72 20 6d 6f | 64 75 6c 65 2e 0d 00 8d |nager mo|dule....|
|000012c0| 04 0d 00 8e 4a 2e 73 65 | 6e 64 63 6c 6f 73 65 20 |....J.se|ndclose |
|000012d0| 20 20 20 20 20 3b 20 53 | 6f 6d 65 6f 6e 65 20 69 | ; S|omeone i|
|000012e0| 73 20 6d 61 6b 69 6e 67 | 20 61 20 63 61 6c 6c 20 |s making| a call |
|000012f0| 74 6f 20 57 69 6d 70 5f | 43 6c 6f 73 65 2f 44 65 |to Wimp_|Close/De|
|00001300| 6c 65 74 65 57 69 6e 64 | 6f 77 2e 0d 00 8f 04 0d |leteWind|ow......|
|00001310| 00 90 28 20 20 20 20 20 | 20 20 20 53 54 4d 46 44 |..( | STMFD|
|00001320| 20 20 20 72 31 33 21 2c | 20 7b 20 72 30 2d 72 31 | r13!,| { r0-r1|
|00001330| 32 2c 20 72 31 34 7d 0d | 00 91 19 20 20 20 20 20 |2, r14}.|... |
|00001340| 20 20 20 3b 53 57 49 20 | 20 20 20 20 26 31 30 37 | ;SWI | &107|
|00001350| 0d 00 92 1a 20 20 20 20 | 20 20 20 20 4d 4f 56 20 |.... | MOV |
|00001360| 20 20 20 20 72 30 2c 20 | 23 35 0d 00 93 27 20 20 | r0, |#5...' |
|00001370| 20 20 20 20 20 20 53 57 | 49 20 20 20 20 20 22 58 | SW|I "X|
|00001380| 57 69 6d 70 5f 52 65 61 | 64 53 79 73 49 6e 66 6f |Wimp_Rea|dSysInfo|
|00001390| 22 0d 00 94 25 20 20 20 | 20 20 20 20 20 4c 44 52 |"...% | LDR|
|000013a0| 20 20 20 20 20 72 31 2c | 20 4d 44 5f 74 61 73 6b | r1,| MD_task|
|000013b0| 68 61 6e 64 6c 65 0d 00 | 95 1a 20 20 20 20 20 20 |handle..|.. |
|000013c0| 20 20 43 4d 50 20 20 20 | 20 20 72 30 2c 20 72 31 | CMP | r0, r1|
|000013d0| 0d 00 96 28 20 20 20 20 | 20 20 20 20 4c 44 4d 46 |...( | LDMF|
|000013e0| 44 20 20 20 72 31 33 21 | 2c 20 7b 20 72 30 2d 72 |D r13!|, { r0-r|
|000013f0| 31 32 2c 20 72 31 34 7d | 0d 00 97 21 20 20 20 20 |12, r14}|...! |
|00001400| 20 20 20 20 42 45 51 20 | 20 20 20 20 69 6e 74 65 | BEQ | inte|
|00001410| 72 63 65 70 74 71 75 69 | 74 0d 00 98 0c 20 20 20 |rceptqui|t.... |
|00001420| 20 20 20 20 20 0d 00 99 | 28 20 20 20 20 20 20 20 | ...|( |
|00001430| 20 53 54 4d 46 44 20 20 | 20 72 31 33 21 2c 20 7b | STMFD | r13!, {|
|00001440| 20 72 30 2d 72 31 32 2c | 20 72 31 34 7d 0d 00 9a | r0-r12,| r14}...|
|00001450| 27 20 20 20 20 20 20 20 | 20 4c 44 52 20 20 20 20 |' | LDR |
|00001460| 20 72 32 2c 20 20 20 4d | 44 5f 74 61 73 6b 68 61 | r2, M|D_taskha|
|00001470| 6e 64 6c 65 0d 00 9b 1c | 20 20 20 20 20 20 20 20 |ndle....| |
|00001480| 4d 4f 56 20 20 20 20 20 | 72 30 2c 20 20 20 23 33 |MOV |r0, #3|
|00001490| 0d 00 9c 27 20 20 20 20 | 20 20 20 20 53 57 49 20 |...' | SWI |
|000014a0| 20 20 20 20 22 58 57 69 | 6d 70 5f 53 65 6e 64 4d | "XWi|mp_SendM|
|000014b0| 65 73 73 61 67 65 22 0d | 00 9d 28 20 20 20 20 20 |essage".|..( |
|000014c0| 20 20 20 4c 44 4d 46 44 | 20 20 20 72 31 33 21 2c | LDMFD| r13!,|
|000014d0| 20 7b 20 72 30 2d 72 31 | 32 2c 20 72 31 34 7d 0d | { r0-r1|2, r14}.|
|000014e0| 00 9e 1e 20 20 20 20 20 | 20 20 20 41 44 52 20 20 |... | ADR |
|000014f0| 20 20 20 72 31 32 2c 20 | 6f 6c 64 70 77 0d 00 9f | r12, |oldpw...|
|00001500| 23 20 20 20 20 20 20 20 | 20 4c 44 52 20 20 20 20 |# | LDR |
|00001510| 20 50 43 2c 20 20 6f 6c | 64 73 77 69 63 6f 64 65 | PC, ol|dswicode|
|00001520| 0d 00 a0 0c 20 20 20 20 | 20 20 20 20 0d 00 a1 12 |.... | ....|
|00001530| 2e 69 6e 74 65 72 63 65 | 70 74 71 75 69 74 0d 00 |.interce|ptquit..|
|00001540| a2 1e 20 20 20 20 20 20 | 20 20 41 44 52 20 20 20 |.. | ADR |
|00001550| 20 20 72 31 32 2c 20 6f | 6c 64 70 77 0d 00 a3 23 | r12, o|ldpw...#|
|00001560| 20 20 20 20 20 20 20 20 | 4c 44 52 20 20 20 20 20 | |LDR |
|00001570| 50 43 2c 20 20 6f 6c 64 | 73 77 69 63 6f 64 65 0d |PC, old|swicode.|
|00001580| 00 a4 04 0d 00 a5 04 0d | 00 a6 05 5d 0d 00 a7 04 |........|...]....|
|00001590| 0d 00 a8 04 0d 00 a9 04 | 0d 00 aa 04 0d 00 ab 0f |........|........|
|000015a0| 5b 20 4f 50 54 20 70 61 | 73 73 25 0d 00 ac 04 0d |[ OPT pa|ss%.....|
|000015b0| 00 ad 0f 2e 69 6e 69 74 | 69 61 6c 69 73 65 0d 00 |....init|ialise..|
|000015c0| ae 04 0d 00 af 26 20 20 | 20 20 20 20 20 20 53 54 |.....& | ST|
|000015d0| 4d 46 44 20 20 20 72 31 | 33 21 2c 20 7b 72 30 2d |MFD r1|3!, {r0-|
|000015e0| 72 31 31 2c 72 31 34 7d | 0d 00 b0 05 5d 0d 00 b1 |r11,r14}|....]...|
|000015f0| 04 0d 00 b2 16 e7 20 64 | 65 74 65 63 74 5f 68 6f |...... d|etect_ho|
|00001600| 74 6b 65 79 25 20 8c 0d | 00 b3 0f 5b 20 4f 50 54 |tkey% ..|...[ OPT|
|00001610| 20 70 61 73 73 25 0d 00 | b4 04 0d 00 b5 22 20 20 | pass%..|....." |
|00001620| 20 20 20 20 20 20 41 44 | 52 20 20 20 20 20 72 30 | AD|R r0|
|00001630| 2c 20 66 69 6c 74 65 72 | 6e 61 6d 65 0d 00 b6 22 |, filter|name..."|
|00001640| 20 20 20 20 20 20 20 20 | 41 44 52 20 20 20 20 20 | |ADR |
|00001650| 72 31 2c 20 66 69 6c 74 | 65 72 63 6f 64 65 0d 00 |r1, filt|ercode..|
|00001660| b7 46 20 20 20 20 20 20 | 20 20 4d 4f 56 20 20 20 |.F | MOV |
|00001670| 20 20 72 32 2c 20 23 30 | 20 20 20 20 20 20 20 20 | r2, #0| |
|00001680| 20 20 20 20 20 20 20 20 | 20 20 20 3b 20 52 65 66 | | ; Ref|
|00001690| 65 72 65 6e 63 65 20 70 | 61 73 73 65 64 20 69 6e |erence p|assed in|
|000016a0| 20 72 31 32 0d 00 b8 39 | 20 20 20 20 20 20 20 20 | r12...9| |
|000016b0| 4d 4f 56 20 20 20 20 20 | 72 33 2c 20 23 30 20 20 |MOV |r3, #0 |
|000016c0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000016d0| 20 3b 20 41 6c 6c 20 74 | 61 73 6b 73 2e 0d 00 b9 | ; All t|asks....|
|000016e0| 1c 20 20 20 20 20 20 20 | 20 4c 44 52 20 20 20 20 |. | LDR |
|000016f0| 20 72 34 2c 20 6d 61 73 | 6b 0d 00 ba 30 20 20 20 | r4, mas|k...0 |
|00001700| 20 20 20 20 20 53 57 49 | 20 20 20 20 20 22 58 46 | SWI| "XF|
|00001710| 69 6c 74 65 72 5f 52 65 | 67 69 73 74 65 72 50 6f |ilter_Re|gisterPo|
|00001720| 73 74 46 69 6c 74 65 72 | 22 0d 00 bb 04 0d 00 bc |stFilter|".......|
|00001730| 3e 20 20 20 20 20 20 20 | 20 4d 4f 56 20 20 20 20 |> | MOV |
|00001740| 20 72 30 2c 20 23 31 36 | 20 20 20 20 20 20 20 20 | r0, #16| |
|00001750| 20 20 20 20 20 20 20 20 | 20 3b 20 43 6c 61 69 6d | | ; Claim|
|00001760| 20 4f 53 20 65 76 65 6e | 74 73 2e 0d 00 bd 21 20 | OS even|ts....! |
|00001770| 20 20 20 20 20 20 20 41 | 44 52 20 20 20 20 20 72 | A|DR r|
|00001780| 31 2c 20 65 76 65 6e 74 | 63 6f 64 65 0d 00 be 1a |1, event|code....|
|00001790| 20 20 20 20 20 20 20 20 | 4d 4f 56 20 20 20 20 20 | |MOV |
|000017a0| 72 32 2c 20 23 30 0d 00 | bf 1f 20 20 20 20 20 20 |r2, #0..|.. |
|000017b0| 20 20 53 57 49 20 20 20 | 20 20 22 58 4f 53 5f 43 | SWI | "XOS_C|
|000017c0| 6c 61 69 6d 22 0d 00 c0 | 04 0d 00 c1 43 20 20 20 |laim"...|....C |
|000017d0| 20 20 20 20 20 4d 4f 56 | 20 20 20 20 20 72 30 2c | MOV| r0,|
|000017e0| 20 23 31 34 20 20 20 20 | 20 20 20 20 20 20 20 20 | #14 | |
|000017f0| 20 20 20 20 20 3b 20 45 | 6e 61 62 6c 65 20 4f 53 | ; E|nable OS|
|00001800| 20 6b 65 79 20 65 76 65 | 6e 74 73 2e 0d 00 c2 1b | key eve|nts.....|
|00001810| 20 20 20 20 20 20 20 20 | 4d 4f 56 20 20 20 20 20 | |MOV |
|00001820| 72 31 2c 20 23 31 31 0d | 00 c3 1e 20 20 20 20 20 |r1, #11.|... |
|00001830| 20 20 20 53 57 49 20 20 | 20 20 20 22 58 4f 53 5f | SWI | "XOS_|
|00001840| 42 79 74 65 22 0d 00 c4 | 05 5d 0d 00 c5 05 cd 0d |Byte"...|.]......|
|00001850| 00 c6 04 0d 00 c7 0f 5b | 20 4f 50 54 20 70 61 73 |.......[| OPT pas|
|00001860| 73 25 0d 00 c8 26 20 20 | 20 20 20 20 20 20 4c 44 |s%...& | LD|
|00001870| 4d 46 44 20 20 20 72 31 | 33 21 2c 20 7b 72 30 2d |MFD r1|3!, {r0-|
|00001880| 72 31 31 2c 50 43 7d 5e | 0d 00 c9 04 0d 00 ca 05 |r11,PC}^|........|
|00001890| 5d 0d 00 cb 04 0d 00 cc | 04 0d 00 cd 04 0d 00 ce |].......|........|
|000018a0| 0f 5b 20 4f 50 54 20 70 | 61 73 73 25 0d 00 cf 04 |.[ OPT p|ass%....|
|000018b0| 0d 00 d0 0d 2e 66 69 6e | 61 6c 69 73 65 0d 00 d1 |.....fin|alise...|
|000018c0| 04 0d 00 d2 04 0d 00 d3 | 26 20 20 20 20 20 20 20 |........|& |
|000018d0| 20 53 54 4d 46 44 20 20 | 20 72 31 33 21 2c 20 7b | STMFD | r13!, {|
|000018e0| 72 30 2d 72 31 31 2c 52 | 31 34 7d 0d 00 d4 05 5d |r0-r11,R|14}....]|
|000018f0| 0d 00 d5 04 0d 00 d6 04 | 0d 00 d7 04 0d 00 d8 04 |........|........|
|00001900| 0d 00 d9 16 e7 20 64 65 | 74 65 63 74 5f 68 6f 74 |..... de|tect_hot|
|00001910| 6b 65 79 25 20 8c 0d 00 | da 0f 5b 20 4f 50 54 20 |key% ...|..[ OPT |
|00001920| 70 61 73 73 25 0d 00 db | 04 0d 00 dc 41 20 20 20 |pass%...|....A |
|00001930| 20 20 20 20 20 41 44 52 | 20 20 20 20 20 72 30 2c | ADR| r0,|
|00001940| 20 66 69 6c 74 65 72 6e | 61 6d 65 20 20 20 20 20 | filtern|ame |
|00001950| 20 20 20 20 20 3b 20 44 | 65 2d 72 65 67 69 73 74 | ; D|e-regist|
|00001960| 65 72 20 66 69 6c 74 65 | 72 2e 0d 00 dd 22 20 20 |er filte|r...." |
|00001970| 20 20 20 20 20 20 41 44 | 52 20 20 20 20 20 72 31 | AD|R r1|
|00001980| 2c 20 66 69 6c 74 65 72 | 63 6f 64 65 0d 00 de 1a |, filter|code....|
|00001990| 20 20 20 20 20 20 20 20 | 4d 4f 56 20 20 20 20 20 | |MOV |
|000019a0| 72 32 2c 20 23 30 0d 00 | df 1a 20 20 20 20 20 20 |r2, #0..|.. |
|000019b0| 20 20 4d 4f 56 20 20 20 | 20 20 72 33 2c 20 23 30 | MOV | r3, #0|
|000019c0| 0d 00 e0 1c 20 20 20 20 | 20 20 20 20 4c 44 52 20 |.... | LDR |
|000019d0| 20 20 20 20 72 34 2c 20 | 6d 61 73 6b 0d 00 e1 32 | r4, |mask...2|
|000019e0| 20 20 20 20 20 20 20 20 | 53 57 49 20 20 20 20 20 | |SWI |
|000019f0| 22 58 46 69 6c 74 65 72 | 5f 44 65 52 65 67 69 73 |"XFilter|_DeRegis|
|00001a00| 74 65 72 50 6f 73 74 46 | 69 6c 74 65 72 22 0d 00 |terPostF|ilter"..|
|00001a10| e2 04 0d 00 e3 44 20 20 | 20 20 20 20 20 20 4d 4f |.....D | MO|
|00001a20| 56 20 20 20 20 20 72 30 | 2c 20 23 31 33 20 20 20 |V r0|, #13 |
|00001a30| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 3b 20 | | ; |
|00001a40| 44 69 73 61 62 6c 65 20 | 4f 53 20 6b 65 79 20 65 |Disable |OS key e|
|00001a50| 76 65 6e 74 73 2e 0d 00 | e4 1b 20 20 20 20 20 20 |vents...|.. |
|00001a60| 20 20 4d 4f 56 20 20 20 | 20 20 72 31 2c 20 23 31 | MOV | r1, #1|
|00001a70| 31 0d 00 e5 1e 20 20 20 | 20 20 20 20 20 53 57 49 |1.... | SWI|
|00001a80| 20 20 20 20 20 22 58 4f | 53 5f 42 79 74 65 22 0d | "XO|S_Byte".|
|00001a90| 00 e6 40 20 20 20 20 20 | 20 20 20 4d 4f 56 20 20 |..@ | MOV |
|00001aa0| 20 20 20 72 30 2c 20 23 | 31 36 20 20 20 20 20 20 | r0, #|16 |
|00001ab0| 20 20 20 20 20 20 20 20 | 20 20 20 3b 20 52 65 6c | | ; Rel|
|00001ac0| 65 61 73 65 20 4f 53 20 | 65 76 65 6e 74 73 2e 0d |ease OS |events..|
|00001ad0| 00 e7 21 20 20 20 20 20 | 20 20 20 41 44 52 20 20 |..! | ADR |
|00001ae0| 20 20 20 72 31 2c 20 65 | 76 65 6e 74 63 6f 64 65 | r1, e|ventcode|
|00001af0| 0d 00 e8 1a 20 20 20 20 | 20 20 20 20 4d 4f 56 20 |.... | MOV |
|00001b00| 20 20 20 20 72 32 2c 20 | 23 30 0d 00 e9 21 20 20 | r2, |#0...! |
|00001b10| 20 20 20 20 20 20 53 57 | 49 20 20 20 20 20 22 58 | SW|I "X|
|00001b20| 4f 53 5f 52 65 6c 65 61 | 73 65 22 0d 00 ea 05 5d |OS_Relea|se"....]|
|00001b30| 0d 00 eb 05 cd 0d 00 ec | 04 0d 00 ed 0f 5b 20 4f |........|.....[ O|
|00001b40| 50 54 20 70 61 73 73 25 | 0d 00 ee 25 20 20 20 20 |PT pass%|...% |
|00001b50| 20 20 20 20 4c 44 4d 46 | 44 20 20 20 72 31 33 21 | LDMF|D r13!|
|00001b60| 2c 20 7b 72 30 2d 72 31 | 31 2c 50 43 7d 0d 00 ef |, {r0-r1|1,PC}...|
|00001b70| 05 5d 0d 00 f0 04 0d 00 | f1 04 0d 00 f2 04 0d 00 |.]......|........|
|00001b80| f3 04 0d 00 f4 16 e7 20 | 64 65 74 65 63 74 5f 68 |....... |detect_h|
|00001b90| 6f 74 6b 65 79 25 20 8c | 0d 00 f5 0f 5b 20 4f 50 |otkey% .|....[ OP|
|00001ba0| 54 20 70 61 73 73 25 0d | 00 f6 04 0d 00 f7 45 2e |T pass%.|......E.|
|00001bb0| 66 69 6c 74 65 72 63 6f | 64 65 20 20 20 20 20 3b |filterco|de ;|
|00001bc0| 20 54 68 69 73 20 63 6f | 64 65 20 69 73 20 63 61 | This co|de is ca|
|00001bd0| 6c 6c 65 64 20 62 79 20 | 74 68 65 20 46 69 6c 74 |lled by |the Filt|
|00001be0| 65 72 4d 61 6e 61 67 65 | 72 20 6d 6f 64 75 6c 65 |erManage|r module|
|00001bf0| 0d 00 f8 4a 20 20 20 20 | 20 20 20 20 20 20 20 20 |...J | |
|00001c00| 20 20 20 20 3b 20 77 68 | 65 6e 76 65 72 20 61 20 | ; wh|enver a |
|00001c10| 77 69 6d 70 20 74 61 73 | 6b 20 69 73 20 61 62 6f |wimp tas|k is abo|
|00001c20| 75 74 20 74 6f 20 72 65 | 63 65 69 76 65 20 61 6e |ut to re|ceive an|
|00001c30| 20 65 76 65 6e 74 5f 4b | 45 59 0d 00 f9 04 0d 00 | event_K|EY......|
|00001c40| fa 27 20 20 20 20 20 20 | 20 20 3b 20 54 68 65 20 |.' | ; The |
|00001c50| 65 76 65 6e 74 20 69 73 | 20 61 6e 20 65 76 65 6e |event is| an even|
|00001c60| 74 5f 4b 45 59 0d 00 fb | 51 20 20 20 20 20 20 20 |t_KEY...|Q |
|00001c70| 20 3b 20 49 66 20 69 74 | 20 69 73 20 41 6c 74 2d | ; If it| is Alt-|
|00001c80| 63 75 72 73 6f 72 6b 65 | 79 2c 20 77 65 20 77 61 |cursorke|y, we wa|
|00001c90| 6e 74 20 74 6f 20 73 74 | 6f 70 20 69 74 2c 20 62 |nt to st|op it, b|
|00001ca0| 79 20 72 65 74 75 72 6e | 69 6e 67 20 77 69 74 68 |y return|ing with|
|00001cb0| 20 72 30 3d 2d 31 0d 00 | fc 04 0d 00 fd 27 20 20 | r0=-1..|.....' |
|00001cc0| 20 20 20 20 20 20 53 54 | 4d 46 44 20 20 20 72 31 | ST|MFD r1|
|00001cd0| 33 21 2c 20 7b 72 30 2d | 72 31 32 2c 20 72 31 34 |3!, {r0-|r12, r14|
|00001ce0| 7d 0d 00 fe 04 0d 00 ff | 4d 20 20 20 20 20 20 20 |}.......|M |
|00001cf0| 20 4c 44 52 20 20 20 20 | 20 72 33 2c 20 4d 44 5f | LDR | r3, MD_|
|00001d00| 74 61 73 6b 68 61 6e 64 | 6c 65 5f 6c 6f 20 20 20 |taskhand|le_lo |
|00001d10| 20 3b 20 4f 6e 6c 79 20 | 67 65 74 20 73 65 6e 74 | ; Only |get sent|
|00001d20| 20 6c 6f 77 65 73 74 20 | 31 36 20 62 69 74 73 20 | lowest |16 bits |
|00001d30| 6f 66 0d 01 00 3a 20 20 | 20 20 20 20 20 20 43 4d |of...: | CM|
|00001d40| 50 20 20 20 20 20 72 32 | 2c 20 72 33 20 20 20 20 |P r2|, r3 |
|00001d50| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 3b 20 | | ; |
|00001d60| 74 61 73 6b 20 68 61 6e | 64 6c 65 2e 0d 01 01 4d |task han|dle....M|
|00001d70| 20 20 20 20 20 20 20 20 | 4c 44 4d 45 51 46 44 20 | |LDMEQFD |
|00001d80| 72 31 33 21 2c 20 7b 72 | 30 2d 72 31 32 2c 50 43 |r13!, {r|0-r12,PC|
|00001d90| 7d 20 20 20 20 20 20 20 | 3b 20 50 61 73 73 20 6d |} |; Pass m|
|00001da0| 65 73 73 61 67 65 20 73 | 74 72 61 69 67 68 74 20 |essage s|traight |
|00001db0| 6f 6e 20 69 66 20 66 6f | 72 0d 01 02 37 20 20 20 |on if fo|r...7 |
|00001dc0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001dd0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001de0| 20 20 20 20 20 3b 20 4d | 75 6c 74 69 44 65 73 6b | ; M|ultiDesk|
|00001df0| 0d 01 03 4f 20 20 20 20 | 20 20 20 20 4c 44 52 20 |...O | LDR |
|00001e00| 20 20 20 20 72 30 2c 20 | 5b 20 72 31 2c 20 23 32 | r0, |[ r1, #2|
|00001e10| 34 5d 20 20 20 20 20 20 | 20 20 20 20 3b 20 4f 66 |4] | ; Of|
|00001e20| 66 73 65 74 20 32 34 20 | 69 6e 20 70 6f 6c 6c 62 |fset 24 |in pollb|
|00001e30| 6c 6f 63 6b 20 69 73 20 | 6b 65 79 63 6f 64 65 0d |lock is |keycode.|
|00001e40| 01 04 22 20 20 20 20 20 | 20 20 20 4d 4f 56 20 20 |.." | MOV |
|00001e50| 20 20 20 72 31 2c 20 23 | 28 33 39 36 2d 32 35 36 | r1, #|(396-256|
|00001e60| 29 0d 01 05 4c 20 20 20 | 20 20 20 20 20 41 44 44 |)...L | ADD|
|00001e70| 20 20 20 20 20 72 31 2c | 20 72 31 2c 20 23 32 35 | r1,| r1, #25|
|00001e80| 36 20 20 20 20 20 20 20 | 20 20 20 20 20 3b 20 72 |6 | ; r|
|00001e90| 31 3d 33 39 36 2c 20 6b | 65 79 63 6f 64 65 20 66 |1=396, k|eycode f|
|00001ea0| 6f 72 20 63 75 72 73 6f | 72 6c 65 66 74 0d 01 06 |or curso|rleft...|
|00001eb0| 1a 20 20 20 20 20 20 20 | 20 43 4d 50 20 20 20 20 |. | CMP |
|00001ec0| 20 72 30 2c 20 72 31 0d | 01 07 49 20 20 20 20 20 | r0, r1.|..I |
|00001ed0| 20 20 20 4c 44 4d 4c 54 | 46 44 20 72 31 33 21 2c | LDMLT|FD r13!,|
|00001ee0| 20 7b 20 72 30 2d 72 31 | 32 2c 20 50 43 7d 20 20 | { r0-r1|2, PC} |
|00001ef0| 20 20 20 3b 20 50 61 73 | 73 20 65 76 65 6e 74 20 | ; Pas|s event |
|00001f00| 6f 6e 20 69 66 20 6b 65 | 79 63 6f 64 65 20 3c 20 |on if ke|ycode < |
|00001f10| 0d 01 08 40 20 20 20 20 | 20 20 20 20 20 20 20 20 |...@ | |
|00001f20| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001f30| 20 20 20 20 20 20 20 20 | 20 20 20 20 3b 20 6b 65 | | ; ke|
|00001f40| 79 63 6f 64 65 5f 43 55 | 52 53 4f 52 4c 45 46 54 |ycode_CU|RSORLEFT|
|00001f50| 0d 01 09 04 0d 01 0a 4b | 20 20 20 20 20 20 20 20 |.......K| |
|00001f60| 41 44 44 20 20 20 20 20 | 72 31 2c 20 72 31 2c 20 |ADD |r1, r1, |
|00001f70| 23 33 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |#3 | |
|00001f80| 3b 20 72 31 3d 33 39 39 | 2c 20 6b 65 79 63 6f 64 |; r1=399|, keycod|
|00001f90| 65 20 66 6f 72 20 63 75 | 72 73 6f 72 75 70 2e 0d |e for cu|rsorup..|
|00001fa0| 01 0b 1a 20 20 20 20 20 | 20 20 20 43 4d 50 20 20 |... | CMP |
|00001fb0| 20 20 20 72 30 2c 20 72 | 31 0d 01 0c 49 20 20 20 | r0, r|1...I |
|00001fc0| 20 20 20 20 20 4c 44 4d | 47 54 46 44 20 72 31 33 | LDM|GTFD r13|
|00001fd0| 21 2c 20 7b 20 72 30 2d | 72 31 32 2c 20 50 43 7d |!, { r0-|r12, PC}|
|00001fe0| 20 20 20 20 20 3b 20 50 | 61 73 73 20 65 76 65 6e | ; P|ass even|
|00001ff0| 74 20 6f 6e 20 69 66 20 | 6b 65 79 63 6f 64 65 20 |t on if |keycode |
|00002000| 3e 20 0d 01 0d 3e 20 20 | 20 20 20 20 20 20 20 20 |> ...> | |
|00002010| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00002020| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 3b 20 | | ; |
|00002030| 6b 65 79 63 6f 64 65 5f | 43 55 52 53 4f 52 55 50 |keycode_|CURSORUP|
|00002040| 0d 01 0e 04 0d 01 0f 38 | 20 20 20 20 20 20 20 20 |.......8| |
|00002050| 3b 20 49 66 20 77 65 20 | 72 65 61 63 68 20 68 65 |; If we |reach he|
|00002060| 72 65 2c 20 74 68 65 20 | 6b 65 79 20 69 73 20 61 |re, the |key is a|
|00002070| 20 63 75 72 73 6f 72 20 | 6b 65 79 2e 0d 01 10 29 | cursor |key....)|
|00002080| 20 20 20 20 20 20 20 20 | 3b 20 4e 6f 77 20 63 68 | |; Now ch|
|00002090| 65 63 6b 20 69 66 20 41 | 6c 74 20 69 73 20 64 6f |eck if A|lt is do|
|000020a0| 77 6e 2e 2e 2e 0d 01 11 | 04 0d 01 12 4d 20 20 20 |wn......|....M |
|000020b0| 20 20 20 20 20 4d 4f 56 | 20 20 20 20 20 72 30 2c | MOV| r0,|
|000020c0| 20 23 31 32 39 20 20 20 | 20 20 20 20 20 20 20 20 | #129 | |
|000020d0| 20 20 20 20 20 3b 20 54 | 65 73 74 20 66 6f 72 20 | ; T|est for |
|000020e0| 61 6c 74 20 6b 65 79 20 | 75 73 69 6e 67 20 4f 53 |alt key |using OS|
|000020f0| 5f 42 79 74 65 2e 0d 01 | 13 1c 20 20 20 20 20 20 |_Byte...|.. |
|00002100| 20 20 4d 4f 56 20 20 20 | 20 20 72 32 2c 20 23 32 | MOV | r2, #2|
|00002110| 35 35 0d 01 14 4c 20 20 | 20 20 20 20 20 20 4d 4f |55...L | MO|
|00002120| 56 20 20 20 20 20 72 31 | 2c 20 23 61 6c 74 5f 6b |V r1|, #alt_k|
|00002130| 65 79 25 20 20 20 20 20 | 20 20 20 20 20 20 3b 20 |ey% | ; |
|00002140| 43 6f 64 65 20 66 6f 72 | 20 6b 65 79 20 74 6f 20 |Code for| key to |
|00002150| 62 65 20 74 65 73 74 65 | 64 20 66 6f 72 2e 0d 01 |be teste|d for...|
|00002160| 15 1e 20 20 20 20 20 20 | 20 20 53 57 49 20 20 20 |.. | SWI |
|00002170| 20 20 22 58 4f 53 5f 42 | 79 74 65 22 0d 01 16 1c | "XOS_B|yte"....|
|00002180| 20 20 20 20 20 20 20 20 | 43 4d 50 20 20 20 20 20 | |CMP |
|00002190| 72 32 2c 20 23 32 35 35 | 0d 01 17 48 20 20 20 20 |r2, #255|...H |
|000021a0| 20 20 20 20 4c 44 4d 46 | 44 20 20 20 72 31 33 21 | LDMF|D r13!|
|000021b0| 2c 20 7b 20 72 30 2d 72 | 31 32 2c 20 72 31 34 7d |, { r0-r|12, r14}|
|000021c0| 20 20 20 20 3b 20 6c 6f | 61 64 20 6f 72 69 67 69 | ; lo|ad origi|
|000021d0| 6e 61 6c 20 6d 65 73 61 | 67 65 20 62 6c 6f 63 6b |nal mesa|ge block|
|000021e0| 0d 01 18 39 20 20 20 20 | 20 20 20 20 ec 51 20 20 |...9 | .Q |
|000021f0| 20 72 30 2c 20 23 30 20 | 20 20 20 20 20 20 20 20 | r0, #0 | |
|00002200| 20 20 20 20 20 20 20 20 | 20 3b 20 6b 69 6c 6c 20 | | ; kill |
|00002210| 74 68 65 20 65 76 65 6e | 74 0d 01 19 4d 20 20 20 |the even|t...M |
|00002220| 20 20 20 20 20 53 55 42 | 45 51 20 20 20 72 30 2c | SUB|EQ r0,|
|00002230| 20 72 30 2c 20 23 31 20 | 20 20 20 20 20 20 20 20 | r0, #1 | |
|00002240| 20 20 20 20 20 3b 20 69 | 66 20 41 6c 74 20 69 73 | ; i|f Alt is|
|00002250| 20 64 6f 77 6e 20 62 79 | 20 73 65 74 74 69 6e 67 | down by| setting|
|00002260| 20 72 30 3d 2d 31 0d 01 | 1a 34 20 20 20 20 20 20 | r0=-1..|.4 |
|00002270| 20 20 4d 4f 56 20 20 20 | 20 20 50 43 2c 20 72 31 | MOV | PC, r1|
|00002280| 34 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |4 | |
|00002290| 20 20 3b 20 72 65 74 75 | 72 6e 0d 01 1b 04 0d 01 | ; retu|rn......|
|000022a0| 1c 04 0d 01 1d 04 0d 01 | 1e 04 0d 01 1f 04 0d 01 |........|........|
|000022b0| 20 04 0d 01 21 4b 2e 65 | 76 65 6e 74 63 6f 64 65 | ...!K.e|ventcode|
|000022c0| 20 20 20 20 20 20 3b 20 | 54 68 69 73 20 63 6f 64 | ; |This cod|
|000022d0| 65 20 69 73 20 63 61 6c | 6c 65 64 20 77 68 65 6e |e is cal|led when|
|000022e0| 76 65 72 20 61 6e 20 4f | 53 20 28 6e 6f 74 20 77 |ver an O|S (not w|
|000022f0| 69 6d 70 29 20 27 65 76 | 65 6e 74 27 20 0d 01 22 |imp) 'ev|ent' .."|
|00002300| 1e 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |. | |
|00002310| 20 3b 20 68 61 70 70 65 | 6e 73 2e 0d 01 23 15 20 | ; happe|ns...#. |
|00002320| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 3b | | ;|
|00002330| 0d 01 24 4d 20 20 20 20 | 20 20 20 20 20 20 20 20 |..$M | |
|00002340| 20 20 20 20 3b 20 57 65 | 20 68 61 76 65 20 65 6e | ; We| have en|
|00002350| 73 75 72 65 64 20 74 68 | 61 74 20 6b 65 79 2d 70 |sured th|at key-p|
|00002360| 72 65 73 73 65 73 20 65 | 76 65 6e 74 73 20 61 72 |resses e|vents ar|
|00002370| 65 20 65 6e 61 62 6c 65 | 64 2c 20 61 73 0d 01 25 |e enable|d, as..%|
|00002380| 3d 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |= | |
|00002390| 20 3b 20 74 68 65 73 65 | 20 61 72 65 20 77 68 61 | ; these| are wha|
|000023a0| 74 20 77 65 20 61 72 65 | 20 69 6e 74 65 72 65 73 |t we are| interes|
|000023b0| 74 65 64 20 69 6e 2e 2e | 2e 20 0d 01 26 04 0d 01 |ted in..|. ..&...|
|000023c0| 27 2b 20 20 20 20 20 20 | 20 20 43 4d 50 20 20 20 |'+ | CMP |
|000023d0| 20 20 72 30 2c 20 23 31 | 31 20 20 20 20 20 3b 20 | r0, #1|1 ; |
|000023e0| 6b 65 79 2d 65 76 65 6e | 74 0d 01 28 1b 20 20 20 |key-even|t..(. |
|000023f0| 20 20 20 20 20 4d 4f 56 | 4e 45 53 20 20 50 43 2c | MOV|NES PC,|
|00002400| 20 72 31 34 0d 01 29 3b | 20 20 20 20 20 20 20 20 | r14..);| |
|00002410| 43 4d 50 20 20 20 20 20 | 72 31 2c 20 23 31 20 20 |CMP |r1, #1 |
|00002420| 20 20 20 20 3b 20 6b 65 | 79 2d 64 6f 77 6e 20 28 | ; ke|y-down (|
|00002430| 72 61 74 68 65 72 20 74 | 68 61 6e 20 75 70 29 0d |rather t|han up).|
|00002440| 01 2a 1b 20 20 20 20 20 | 20 20 20 4d 4f 56 4e 45 |.*. | MOVNE|
|00002450| 53 20 20 50 43 2c 20 72 | 31 34 0d 01 2b 04 0d 01 |S PC, r|14..+...|
|00002460| 2c 04 0d 01 2d 26 20 20 | 20 20 20 20 20 20 3b 20 |,...-& | ; |
|00002470| 54 68 65 20 65 76 65 6e | 74 20 69 73 20 61 20 6b |The even|t is a k|
|00002480| 65 79 2d 64 6f 77 6e 2e | 0d 01 2e 04 0d 01 2f 31 |ey-down.|....../1|
|00002490| 20 20 20 20 20 20 20 20 | 3b 20 43 68 65 63 6b 20 | |; Check |
|000024a0| 74 68 65 20 6b 65 79 2d | 64 6f 77 6e 20 69 73 20 |the key-|down is |
|000024b0| 61 20 63 75 72 73 6f 72 | 20 6b 65 79 2e 0d 01 30 |a cursor| key...0|
|000024c0| 04 0d 01 31 20 20 20 20 | 20 20 20 20 20 43 4d 50 |...1 | CMP|
|000024d0| 20 20 20 20 20 72 32 2c | 20 23 72 61 77 5f 75 70 | r2,| #raw_up|
|000024e0| 25 0d 01 32 1d 20 20 20 | 20 20 20 20 20 42 45 51 |%..2. | BEQ|
|000024f0| 20 20 20 20 20 63 75 72 | 73 6f 72 6b 65 79 0d 01 | cur|sorkey..|
|00002500| 33 22 20 20 20 20 20 20 | 20 20 43 4d 50 20 20 20 |3" | CMP |
|00002510| 20 20 72 32 2c 20 23 72 | 61 77 5f 64 6f 77 6e 25 | r2, #r|aw_down%|
|00002520| 0d 01 34 1d 20 20 20 20 | 20 20 20 20 42 45 51 20 |..4. | BEQ |
|00002530| 20 20 20 20 63 75 72 73 | 6f 72 6b 65 79 0d 01 35 | curs|orkey..5|
|00002540| 23 20 20 20 20 20 20 20 | 20 43 4d 50 20 20 20 20 |# | CMP |
|00002550| 20 72 32 2c 20 23 72 61 | 77 5f 72 69 67 68 74 25 | r2, #ra|w_right%|
|00002560| 0d 01 36 1d 20 20 20 20 | 20 20 20 20 42 45 51 20 |..6. | BEQ |
|00002570| 20 20 20 20 63 75 72 73 | 6f 72 6b 65 79 0d 01 37 | curs|orkey..7|
|00002580| 22 20 20 20 20 20 20 20 | 20 43 4d 50 20 20 20 20 |" | CMP |
|00002590| 20 72 32 2c 20 23 72 61 | 77 5f 6c 65 66 74 25 0d | r2, #ra|w_left%.|
|000025a0| 01 38 1d 20 20 20 20 20 | 20 20 20 42 45 51 20 20 |.8. | BEQ |
|000025b0| 20 20 20 63 75 72 73 6f | 72 6b 65 79 0d 01 39 04 | curso|rkey..9.|
|000025c0| 0d 01 3a 1c 3b 20 20 20 | 20 20 20 20 20 4d 4f 56 |..:.; | MOV|
|000025d0| 53 20 20 20 20 50 43 2c | 20 72 31 34 0d 01 3b 04 |S PC,| r14..;.|
|000025e0| 0d 01 3c 04 0d 01 3d 49 | 2e 63 75 72 73 6f 72 6b |..<...=I|.cursork|
|000025f0| 65 79 20 20 20 20 20 20 | 3b 20 49 66 20 77 65 20 |ey |; If we |
|00002600| 72 65 61 63 68 20 68 65 | 72 65 2c 20 74 68 65 20 |reach he|re, the |
|00002610| 6b 65 79 2d 64 6f 77 6e | 20 69 73 20 66 6f 72 20 |key-down| is for |
|00002620| 61 20 63 75 72 73 6f 72 | 20 6b 65 79 2e 0d 01 3e |a cursor| key...>|
|00002630| 04 0d 01 3f 42 20 20 20 | 20 20 20 20 20 53 54 4d |...?B | STM|
|00002640| 46 44 20 20 20 72 31 33 | 21 2c 20 7b 20 72 30 2d |FD r13|!, { r0-|
|00002650| 72 31 32 2c 20 72 31 34 | 7d 20 20 20 20 20 3b 20 |r12, r14|} ; |
|00002660| 53 61 76 65 20 61 6c 6c | 20 72 65 67 69 73 74 65 |Save all| registe|
|00002670| 72 73 2e 0d 01 40 04 0d | 01 41 3f 20 20 20 20 20 |rs...@..|.A? |
|00002680| 20 20 20 3b 20 53 65 74 | 20 75 70 20 61 20 74 72 | ; Set| up a tr|
|00002690| 61 6e 73 69 65 6e 74 20 | 63 61 6c 6c 2d 62 61 63 |ansient |call-bac|
|000026a0| 6b 20 77 68 69 63 68 20 | 77 69 6c 6c 20 63 68 65 |k which |will che|
|000026b0| 63 6b 20 74 68 65 0d 01 | 42 32 20 20 20 20 20 20 |ck the..|B2 |
|000026c0| 20 20 3b 20 61 6c 74 20 | 6b 65 79 20 61 6e 64 20 | ; alt |key and |
|000026d0| 63 61 6c 6c 20 57 69 6d | 70 5f 53 65 6e 64 4d 65 |call Wim|p_SendMe|
|000026e0| 73 73 61 67 65 2e 2e 2e | 0d 01 43 42 20 20 20 20 |ssage...|..CB |
|000026f0| 20 20 20 20 3b 20 28 57 | 65 20 63 61 6e 27 74 20 | ; (W|e can't |
|00002700| 63 68 65 63 6b 20 74 68 | 65 20 41 6c 74 20 6b 65 |check th|e Alt ke|
|00002710| 79 20 6f 72 20 63 61 6c | 6c 20 57 69 6d 70 5f 53 |y or cal|l Wimp_S|
|00002720| 65 6e 64 4d 65 73 73 61 | 67 65 0d 01 44 42 20 20 |endMessa|ge..DB |
|00002730| 20 20 20 20 20 20 3b 20 | 62 65 63 61 75 73 65 20 | ; |because |
|00002740| 77 65 20 61 72 65 20 69 | 6e 20 74 68 65 20 6d 69 |we are i|n the mi|
|00002750| 64 64 6c 65 20 6f 66 20 | 61 20 6b 65 79 2d 64 6f |ddle of |a key-do|
|00002760| 77 6e 20 69 6e 74 65 72 | 75 70 74 2c 0d 01 45 38 |wn inter|upt,..E8|
|00002770| 20 20 20 20 20 20 20 20 | 3b 20 61 6e 64 20 73 6f | |; and so|
|00002780| 20 63 61 6e 27 74 20 63 | 61 6c 6c 20 6e 6f 6e 2d | can't c|all non-|
|00002790| 72 65 65 6e 74 65 72 65 | 6e 74 20 53 57 49 73 20 |reentere|nt SWIs |
|000027a0| 65 74 63 2e 0d 01 46 04 | 0d 01 47 5e 20 20 20 20 |etc...F.|..G^ |
|000027b0| 20 20 20 20 4d 4f 56 20 | 20 20 20 20 72 31 2c 20 | MOV | r1, |
|000027c0| 72 32 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |r2 | |
|000027d0| 20 20 20 20 3b 20 63 6f | 6e 74 65 6e 74 73 20 6f | ; co|ntents o|
|000027e0| 66 20 72 31 20 61 72 65 | 20 70 61 73 73 65 64 20 |f r1 are| passed |
|000027f0| 69 6e 20 72 31 32 20 74 | 6f 20 63 61 6c 6c 62 61 |in r12 t|o callba|
|00002800| 63 6b 63 6f 64 65 0d 01 | 48 24 20 20 20 20 20 20 |ckcode..|H$ |
|00002810| 20 20 41 44 52 20 20 20 | 20 20 72 30 2c 20 63 61 | ADR | r0, ca|
|00002820| 6c 6c 62 61 63 6b 63 6f | 64 65 0d 01 49 04 0d 01 |llbackco|de..I...|
|00002830| 4a 3f 20 20 20 20 20 20 | 20 20 4d 4f 56 20 20 20 |J? | MOV |
|00002840| 20 20 72 39 2c 20 50 43 | 20 20 20 20 20 20 20 20 | r9, PC| |
|00002850| 20 20 20 20 20 20 20 20 | 20 20 3b 20 53 61 76 65 | | ; Save|
|00002860| 20 63 75 72 72 65 6e 74 | 20 6d 6f 64 65 0d 01 4b | current| mode..K|
|00002870| 4b 20 20 20 20 20 20 20 | 20 84 52 20 20 20 20 20 |K | .R |
|00002880| 72 38 2c 20 72 39 2c 20 | 23 33 20 20 20 20 20 20 |r8, r9, |#3 |
|00002890| 20 20 20 20 20 20 20 20 | 3b 20 44 65 72 69 76 65 | |; Derive|
|000028a0| 20 53 56 43 2d 6d 6f 64 | 65 20 76 65 72 73 69 6f | SVC-mod|e versio|
|000028b0| 6e 20 6f 66 20 69 74 2e | 0d 01 4c 3c 20 20 20 20 |n of it.|..L< |
|000028c0| 20 20 20 20 54 45 51 50 | 20 20 20 20 72 38 2c 20 | TEQP| r8, |
|000028d0| 23 30 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |#0 | |
|000028e0| 20 20 20 20 3b 20 45 6e | 74 65 72 20 53 56 43 20 | ; En|ter SVC |
|000028f0| 6d 6f 64 65 0d 01 4d 4a | 20 20 20 20 20 20 20 20 |mode..MJ| |
|00002900| 4d 4f 56 20 20 20 20 20 | 72 30 2c 20 72 30 20 20 |MOV |r0, r0 |
|00002910| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00002920| 3b 20 4e 6f 2d 6f 70 20 | 74 6f 20 70 72 65 76 65 |; No-op |to preve|
|00002930| 6e 74 20 63 6f 6e 74 65 | 6e 74 69 6f 6e 2e 0d 01 |nt conte|ntion...|
|00002940| 4e 3b 20 20 20 20 20 20 | 20 20 53 54 4d 46 44 20 |N; | STMFD |
|00002950| 20 20 72 31 33 21 2c 7b | 52 31 34 7d 20 20 20 20 | r13!,{|R14} |
|00002960| 20 20 20 20 20 20 20 20 | 20 20 3b 20 53 61 76 65 | | ; Save|
|00002970| 20 72 31 34 5f 73 76 63 | 2e 0d 01 4f 25 20 20 20 | r14_svc|...O% |
|00002980| 20 20 20 20 20 53 57 49 | 20 20 20 20 20 22 58 4f | SWI| "XO|
|00002990| 53 5f 41 64 64 43 61 6c | 6c 42 61 63 6b 22 0d 01 |S_AddCal|lBack"..|
|000029a0| 50 3e 20 20 20 20 20 20 | 20 20 4c 44 4d 46 44 20 |P> | LDMFD |
|000029b0| 20 20 72 31 33 21 2c 20 | 7b 52 31 34 7d 20 20 20 | r13!, |{R14} |
|000029c0| 20 20 20 20 20 20 20 20 | 20 20 3b 20 52 65 73 74 | | ; Rest|
|000029d0| 6f 72 65 20 72 31 34 5f | 73 76 63 2e 0d 01 51 4f |ore r14_|svc...QO|
|000029e0| 20 20 20 20 20 20 20 20 | 54 45 51 50 20 20 20 20 | |TEQP |
|000029f0| 72 39 2c 20 23 30 20 20 | 20 20 20 20 20 20 20 20 |r9, #0 | |
|00002a00| 20 20 20 20 20 20 20 20 | 3b 20 52 65 2d 65 6e 74 | |; Re-ent|
|00002a10| 65 72 20 6f 72 69 67 69 | 6e 61 6c 20 70 72 6f 63 |er origi|nal proc|
|00002a20| 65 73 73 6f 72 20 6d 6f | 64 65 2e 0d 01 52 4a 20 |essor mo|de...RJ |
|00002a30| 20 20 20 20 20 20 20 4d | 4f 56 20 20 20 20 20 72 | M|OV r|
|00002a40| 30 2c 20 72 30 20 20 20 | 20 20 20 20 20 20 20 20 |0, r0 | |
|00002a50| 20 20 20 20 20 20 20 3b | 20 4e 6f 2d 6f 70 20 74 | ;| No-op t|
|00002a60| 6f 20 70 72 65 76 65 6e | 74 20 63 6f 6e 74 65 6e |o preven|t conten|
|00002a70| 74 69 6f 6e 2e 0d 01 53 | 04 0d 01 54 28 20 20 20 |tion...S|...T( |
|00002a80| 20 20 20 20 20 4c 44 4d | 46 44 20 20 20 72 31 33 | LDM|FD r13|
|00002a90| 21 2c 20 7b 20 72 30 2d | 72 31 32 2c 20 72 31 34 |!, { r0-|r12, r14|
|00002aa0| 7d 0d 01 55 1b 20 20 20 | 20 20 20 20 20 4d 4f 56 |}..U. | MOV|
|00002ab0| 53 20 20 20 20 50 43 2c | 20 72 31 34 0d 01 56 04 |S PC,| r14..V.|
|00002ac0| 0d 01 57 04 0d 01 58 04 | 0d 01 59 04 0d 01 5a 4f |..W...X.|..Y...ZO|
|00002ad0| 2e 63 61 6c 6c 62 61 63 | 6b 63 6f 64 65 20 20 20 |.callbac|kcode |
|00002ae0| 3b 20 54 68 69 73 20 63 | 6f 64 65 20 69 73 20 63 |; This c|ode is c|
|00002af0| 61 6c 6c 65 64 20 77 68 | 65 6e 20 74 68 65 20 73 |alled wh|en the s|
|00002b00| 79 73 74 65 6d 20 6e 65 | 78 74 20 72 65 74 75 72 |ystem ne|xt retur|
|00002b10| 6e 73 20 74 6f 20 75 73 | 65 72 20 0d 01 5b 45 20 |ns to us|er ..[E |
|00002b20| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 3b | | ;|
|00002b30| 20 6d 6f 64 65 20 73 6f | 20 77 65 20 63 61 6e 20 | mode so| we can |
|00002b40| 63 61 6c 6c 20 6e 6f 6e | 2d 72 65 65 6e 74 65 72 |call non|-reenter|
|00002b50| 65 6e 74 20 53 57 49 73 | 20 68 65 72 65 2e 2e 2e |ent SWIs| here...|
|00002b60| 0d 01 5c 04 0d 01 5d 4c | 20 20 20 20 20 20 20 20 |..\...]L| |
|00002b70| 3b 20 72 31 32 20 63 6f | 6e 74 61 69 6e 73 20 74 |; r12 co|ntains t|
|00002b80| 68 65 20 72 61 77 20 6b | 65 79 62 6f 61 72 64 2d |he raw k|eyboard-|
|00002b90| 63 6f 64 65 20 66 6f 72 | 20 6f 6e 65 20 6f 66 20 |code for| one of |
|00002ba0| 74 68 65 20 63 75 72 73 | 6f 72 20 6b 65 79 73 2e |the curs|or keys.|
|00002bb0| 0d 01 5e 04 0d 01 5f 28 | 20 20 20 20 20 20 20 20 |..^..._(| |
|00002bc0| 53 54 4d 46 44 20 20 20 | 72 31 33 21 2c 20 7b 20 |STMFD |r13!, { |
|00002bd0| 72 30 2d 72 31 32 2c 20 | 72 31 34 7d 0d 01 60 04 |r0-r12, |r14}..`.|
|00002be0| 0d 01 61 4d 20 20 20 20 | 20 20 20 20 4d 4f 56 20 |..aM | MOV |
|00002bf0| 20 20 20 20 72 30 2c 20 | 23 31 32 39 20 20 20 20 | r0, |#129 |
|00002c00| 20 20 20 20 20 20 20 20 | 20 20 20 20 3b 20 54 65 | | ; Te|
|00002c10| 73 74 20 66 6f 72 20 61 | 6c 74 20 6b 65 79 20 75 |st for a|lt key u|
|00002c20| 73 69 6e 67 20 4f 53 5f | 42 79 74 65 2e 0d 01 62 |sing OS_|Byte...b|
|00002c30| 1c 20 20 20 20 20 20 20 | 20 4d 4f 56 20 20 20 20 |. | MOV |
|00002c40| 20 72 32 2c 20 23 32 35 | 35 0d 01 63 4c 20 20 20 | r2, #25|5..cL |
|00002c50| 20 20 20 20 20 4d 4f 56 | 20 20 20 20 20 72 31 2c | MOV| r1,|
|00002c60| 20 23 61 6c 74 5f 6b 65 | 79 25 20 20 20 20 20 20 | #alt_ke|y% |
|00002c70| 20 20 20 20 20 3b 20 43 | 6f 64 65 20 66 6f 72 20 | ; C|ode for |
|00002c80| 6b 65 79 20 74 6f 20 62 | 65 20 74 65 73 74 65 64 |key to b|e tested|
|00002c90| 20 66 6f 72 2e 0d 01 64 | 20 20 20 20 20 20 20 20 | for...d| |
|00002ca0| 20 53 54 4d 46 44 20 20 | 20 72 31 33 21 2c 20 7b | STMFD | r13!, {|
|00002cb0| 20 72 31 32 7d 0d 01 65 | 1e 20 20 20 20 20 20 20 | r12}..e|. |
|00002cc0| 20 53 57 49 20 20 20 20 | 20 22 58 4f 53 5f 42 79 | SWI | "XOS_By|
|00002cd0| 74 65 22 0d 01 66 20 20 | 20 20 20 20 20 20 20 4c |te"..f | L|
|00002ce0| 44 4d 46 44 20 20 20 72 | 31 33 21 2c 20 7b 20 72 |DMFD r|13!, { r|
|00002cf0| 31 32 7d 0d 01 67 04 0d | 01 68 1d 20 20 20 20 20 |12}..g..|.h. |
|00002d00| 20 20 20 43 4d 50 20 20 | 20 20 20 72 32 2c 20 23 | CMP | r2, #|
|00002d10| 32 35 35 3a 0d 01 69 04 | 0d 01 6a 4e 20 20 20 20 |255:..i.|..jN |
|00002d20| 20 20 20 20 4c 44 4d 4e | 45 46 44 20 72 31 33 21 | LDMN|EFD r13!|
|00002d30| 2c 20 7b 20 72 30 2d 72 | 31 32 2c 20 72 31 34 7d |, { r0-r|12, r14}|
|00002d40| 20 20 20 20 3b 20 52 65 | 73 74 6f 72 65 20 72 65 | ; Re|store re|
|00002d50| 67 69 73 74 65 72 73 20 | 61 6e 64 20 72 65 74 75 |gisters |and retu|
|00002d60| 72 6e 20 69 66 20 0d 01 | 6b 38 20 20 20 20 20 20 |rn if ..|k8 |
|00002d70| 20 20 4d 4f 56 4e 45 53 | 20 20 50 43 2c 20 72 31 | MOVNES| PC, r1|
|00002d80| 34 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |4 | |
|00002d90| 20 20 3b 20 61 6c 74 20 | 69 73 20 75 70 2e 0d 01 | ; alt |is up...|
|00002da0| 6c 04 0d 01 6d 04 0d 01 | 6e 4d 20 20 20 20 20 20 |l...m...|nM |
|00002db0| 20 20 3b 20 43 6f 6e 76 | 65 72 74 20 72 61 77 20 | ; Conv|ert raw |
|00002dc0| 6b 65 79 20 75 70 2f 64 | 6f 77 6e 20 6b 65 79 2d |key up/d|own key-|
|00002dd0| 6e 75 6d 62 65 72 20 74 | 6f 20 61 20 57 69 6d 70 |number t|o a Wimp|
|00002de0| 20 65 76 65 6e 74 5f 4b | 45 59 20 6b 65 79 63 6f | event_K|EY keyco|
|00002df0| 64 65 2e 0d 01 6f 21 20 | 20 20 20 20 20 20 20 43 |de...o! | C|
|00002e00| 4d 50 20 20 20 20 20 72 | 31 32 2c 20 23 72 61 77 |MP r|12, #raw|
|00002e10| 5f 75 70 25 0d 01 70 29 | 20 20 20 20 20 20 20 20 |_up%..p)| |
|00002e20| ec 51 20 20 20 72 33 2c | 20 23 28 6b 65 79 5f 63 |.Q r3,| #(key_c|
|00002e30| 75 72 73 6f 72 75 70 25 | 2d 32 35 36 29 0d 01 71 |ursorup%|-256)..q|
|00002e40| 04 0d 01 72 23 20 20 20 | 20 20 20 20 20 43 4d 50 |...r# | CMP|
|00002e50| 20 20 20 20 20 72 31 32 | 2c 20 23 72 61 77 5f 64 | r12|, #raw_d|
|00002e60| 6f 77 6e 25 0d 01 73 2b | 20 20 20 20 20 20 20 20 |own%..s+| |
|00002e70| ec 51 20 20 20 72 33 2c | 20 23 28 6b 65 79 5f 63 |.Q r3,| #(key_c|
|00002e80| 75 72 73 6f 72 64 6f 77 | 6e 25 2d 32 35 36 29 0d |ursordow|n%-256).|
|00002e90| 01 74 04 0d 01 75 24 20 | 20 20 20 20 20 20 20 43 |.t...u$ | C|
|00002ea0| 4d 50 20 20 20 20 20 72 | 31 32 2c 20 23 72 61 77 |MP r|12, #raw|
|00002eb0| 5f 72 69 67 68 74 25 0d | 01 76 2c 20 20 20 20 20 |_right%.|.v, |
|00002ec0| 20 20 20 ec 51 20 20 20 | 72 33 2c 20 23 28 6b 65 | .Q |r3, #(ke|
|00002ed0| 79 5f 63 75 72 73 6f 72 | 72 69 67 68 74 25 2d 32 |y_cursor|right%-2|
|00002ee0| 35 36 29 0d 01 77 04 0d | 01 78 23 20 20 20 20 20 |56)..w..|.x# |
|00002ef0| 20 20 20 43 4d 50 20 20 | 20 20 20 72 31 32 2c 20 | CMP | r12, |
|00002f00| 23 72 61 77 5f 6c 65 66 | 74 25 0d 01 79 2b 20 20 |#raw_lef|t%..y+ |
|00002f10| 20 20 20 20 20 20 ec 51 | 20 20 20 72 33 2c 20 23 | .Q| r3, #|
|00002f20| 28 6b 65 79 5f 63 75 72 | 73 6f 72 6c 65 66 74 25 |(key_cur|sorleft%|
|00002f30| 2d 32 35 36 29 0d 01 7a | 04 0d 01 7b 20 20 20 20 |-256)..z|...{ |
|00002f40| 20 20 20 20 20 41 44 44 | 20 20 20 20 20 72 33 2c | ADD| r3,|
|00002f50| 20 72 33 2c 20 23 32 35 | 36 0d 01 7c 04 0d 01 7d | r3, #25|6..|...}|
|00002f60| 35 20 20 20 20 20 20 20 | 20 4d 4f 56 20 20 20 20 |5 | MOV |
|00002f70| 20 72 30 2c 20 23 38 20 | 20 20 20 20 20 20 20 20 | r0, #8 | |
|00002f80| 20 20 20 20 20 20 20 20 | 20 3b 20 53 65 6e 64 20 | | ; Send |
|00002f90| 61 6e 0d 01 7e 44 20 20 | 20 20 20 20 20 20 41 44 |an..~D | AD|
|00002fa0| 52 20 20 20 20 20 72 31 | 2c 20 70 6f 6c 6c 62 6c |R r1|, pollbl|
|00002fb0| 6f 63 6b 20 20 20 20 20 | 20 20 20 20 20 20 3b 20 |ock | ; |
|00002fc0| 65 76 65 6e 74 5f 4b 45 | 59 20 74 6f 20 4d 75 6c |event_KE|Y to Mul|
|00002fd0| 74 69 44 65 73 6b 0d 01 | 7f 25 20 20 20 20 20 20 |tiDesk..|.% |
|00002fe0| 20 20 4c 44 52 20 20 20 | 20 20 72 32 2c 20 4d 44 | LDR | r2, MD|
|00002ff0| 5f 74 61 73 6b 68 61 6e | 64 6c 65 0d 01 80 21 20 |_taskhan|dle...! |
|00003000| 20 20 20 20 20 20 20 53 | 54 52 20 20 20 20 20 72 | S|TR r|
|00003010| 33 2c 20 5b 72 31 2c 20 | 23 32 34 5d 0d 01 81 27 |3, [r1, |#24]...'|
|00003020| 20 20 20 20 20 20 20 20 | 53 57 49 20 20 20 20 20 | |SWI |
|00003030| 22 58 57 69 6d 70 5f 53 | 65 6e 64 4d 65 73 73 61 |"XWimp_S|endMessa|
|00003040| 67 65 22 0d 01 82 04 0d | 01 83 28 20 20 20 20 20 |ge".....|..( |
|00003050| 20 20 20 4c 44 4d 46 44 | 20 20 20 72 31 33 21 2c | LDMFD| r13!,|
|00003060| 20 7b 20 72 30 2d 72 31 | 32 2c 20 72 31 34 7d 0d | { r0-r1|2, r14}.|
|00003070| 01 84 1b 20 20 20 20 20 | 20 20 20 4d 4f 56 53 20 |... | MOVS |
|00003080| 20 20 20 50 43 2c 20 72 | 31 34 0d 01 85 05 5d 0d | PC, r|14....].|
|00003090| 01 86 04 0d 01 87 04 0d | 01 88 0f 5b 20 4f 50 54 |........|...[ OPT|
|000030a0| 20 70 61 73 73 25 0d 01 | 89 0e 2e 73 77 69 5f 74 | pass%..|...swi_t|
|000030b0| 61 62 6c 65 0d 01 8a 05 | 5d 0d 01 8b 04 0d 01 8c |able....|].......|
|000030c0| 28 61 64 72 25 20 3d 20 | 6f 6c 64 5f 6d 6f 64 75 |(adr% = |old_modu|
|000030d0| 6c 65 25 20 2b 20 6f 6c | 64 5f 6d 6f 64 75 6c 65 |le% + ol|d_module|
|000030e0| 25 21 26 32 34 0d 01 8d | 04 0d 01 8e 05 f5 0d 01 |%!&24...|........|
|000030f0| 8f 11 20 20 3f 4f 25 20 | 3d 20 3f 61 64 72 25 0d |.. ?O% |= ?adr%.|
|00003100| 01 90 1a 20 20 f4 50 52 | 49 4e 54 20 43 48 52 24 |... .PR|INT CHR$|
|00003110| 28 20 3f 61 64 72 25 29 | 3b 0d 01 91 0f 20 20 4f |( ?adr%)|;.... O|
|00003120| 25 20 20 20 2b 3d 20 31 | 0d 01 92 0f 20 20 50 25 |% += 1|.... P%|
|00003130| 20 20 20 2b 3d 20 31 0d | 01 93 0f 20 20 61 64 72 | += 1.|... adr|
|00003140| 25 20 2b 3d 20 31 0d 01 | 94 44 20 20 e7 20 4f 25 |% += 1..|.D . O%|
|00003150| 3e 3d 4c 25 20 85 20 31 | 2c 20 22 21 22 20 2b 20 |>=L% . 1|, "!" + |
|00003160| 61 70 70 6e 61 6d 65 24 | 20 2b 20 22 2e 4d 61 6b |appname$| + ".Mak|
|00003170| 65 4d 6f 64 20 63 61 6e | 27 74 20 63 6f 70 79 20 |eMod can|'t copy |
|00003180| 53 57 49 20 6e 61 6d 65 | 73 22 0d 01 95 1d fd 20 |SWI name|s"..... |
|00003190| 61 64 72 25 3f 30 20 3d | 20 30 20 80 20 61 64 72 |adr%?0 =| 0 . adr|
|000031a0| 25 3f 31 20 3d 20 30 0d | 01 96 04 0d 01 97 0f 5b |%?1 = 0.|.......[|
|000031b0| 20 4f 50 54 20 70 61 73 | 73 25 0d 01 98 15 20 20 | OPT pas|s%.... |
|000031c0| 20 20 20 20 20 45 51 55 | 42 20 20 20 20 20 30 0d | EQU|B 0.|
|000031d0| 01 99 15 20 20 20 20 20 | 20 20 45 51 55 42 20 20 |... | EQUB |
|000031e0| 20 20 20 30 0d 01 9a 10 | 20 20 20 20 20 20 20 41 | 0....| A|
|000031f0| 4c 49 47 4e 0d 01 9b 05 | 5d 0d 01 9c 04 0d 01 9d |LIGN....|].......|
|00003200| 05 cd 0d 01 9e 04 0d 01 | 9f 04 0d 01 a0 04 0d 01 |........|........|
|00003210| a1 04 0d 01 a2 4e f4 20 | 2a 2a 2a 2a 2a 2a 2a 2a |.....N. |********|
|00003220| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00003230| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00003240| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00003250| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00003260| 0d 01 a3 04 0d 01 a4 0c | ed 20 70 61 73 73 30 25 |........|. pass0%|
|00003270| 0d 01 a5 04 0d 01 a6 04 | 0d 01 a7 4f c8 99 20 22 |........|...O.. "|
|00003280| 4f 53 5f 4d 6f 64 75 6c | 65 22 2c 20 31 31 2c 20 |OS_Modul|e", 11, |
|00003290| 63 6f 64 65 73 70 61 63 | 65 25 2c 20 50 25 20 b8 |codespac|e%, P% .|
|000032a0| 20 52 30 25 3a 20 f4 20 | 49 6e 73 74 61 6c 6c 20 | R0%: . |Install |
|000032b0| 74 68 65 20 6d 6f 64 75 | 6c 65 20 69 6e 20 52 4d |the modu|le in RM|
|000032c0| 41 20 61 72 65 61 2e 0d | 01 a8 04 0d 01 a9 05 e0 |A area..|........|
|000032d0| 0d 01 aa 04 0d 01 ab 04 | 0d 01 ac 04 0d 01 ad 04 |........|........|
|000032e0| 0d 01 ae 22 dd 20 a4 46 | 69 6e 64 54 61 73 6b 48 |...". .F|indTaskH|
|000032f0| 61 6e 64 6c 65 28 20 74 | 61 73 6b 5f 6e 61 6d 65 |andle( t|ask_name|
|00003300| 24 29 0d 01 af 24 20 20 | ea 20 62 75 66 66 5f 6c |$)...$ |. buff_l|
|00003310| 65 6e 2c 20 62 75 66 66 | 65 72 2c 20 72 30 2c 20 |en, buff|er, r0, |
|00003320| 72 31 2c 20 72 32 0d 01 | b0 25 62 75 66 66 5f 6c |r1, r2..|.%buff_l|
|00003330| 65 6e 20 3d 20 32 35 36 | 3a 20 de 20 62 75 66 66 |en = 256|: . buff|
|00003340| 65 72 20 62 75 66 66 5f | 6c 65 6e 0d 01 b1 0a 72 |er buff_|len....r|
|00003350| 30 20 3d 20 30 0d 01 b2 | 05 f5 0d 01 b3 1a 20 20 |0 = 0...|...... |
|00003360| 72 31 20 3d 20 62 75 66 | 66 65 72 3a 20 72 32 20 |r1 = buf|fer: r2 |
|00003370| 3d 20 31 36 0d 01 b4 36 | 20 20 c8 99 20 22 54 61 |= 16...6| .. "Ta|
|00003380| 73 6b 4d 61 6e 61 67 65 | 72 5f 45 6e 75 6d 65 72 |skManage|r_Enumer|
|00003390| 61 74 65 54 61 73 6b 73 | 22 2c 20 72 30 2c 20 72 |ateTasks|", r0, r|
|000033a0| 31 2c 20 72 32 20 b8 20 | 72 30 0d 01 b5 12 20 20 |1, r2 . |r0.... |
|000033b0| e7 20 72 30 3d 2d 31 20 | 20 3d 20 30 0d 01 b6 2b |. r0=-1 | = 0...+|
|000033c0| 20 20 fd 20 a4 73 74 72 | 69 6e 67 28 20 62 75 66 | . .str|ing( buf|
|000033d0| 66 65 72 21 34 2c 20 33 | 32 29 20 3d 20 74 61 73 |fer!4, 3|2) = tas|
|000033e0| 6b 5f 6e 61 6d 65 24 0d | 01 b7 0c 3d 21 62 75 66 |k_name$.|...=!buf|
|000033f0| 66 65 72 0d 01 b8 04 0d | 01 b9 04 0d 01 ba 14 dd |fer.....|........|
|00003400| 20 a4 73 74 72 69 6e 67 | 28 20 78 2c 20 6e 29 0d | .string|( x, n).|
|00003410| 01 bb 0f 20 20 ea 20 69 | 2c 63 2c 20 61 24 0d 01 |... . i|,c, a$..|
|00003420| bc 0d e3 20 69 3d 30 20 | b8 20 6e 0d 01 bd 10 20 |... i=0 |. n.... |
|00003430| 20 63 20 3d 20 3f 28 78 | 2b 69 29 0d 01 be 11 20 | c = ?(x|+i).... |
|00003440| 20 e7 20 63 3d 30 20 8c | 20 3d 61 24 0d 01 bf 14 | . c=0 .| =a$....|
|00003450| 20 20 61 24 20 3d 20 61 | 24 20 2b 20 bd 28 63 29 | a$ = a|$ + .(c)|
|00003460| 0d 01 c0 07 20 20 ed 0d | 01 c1 07 3d 61 24 0d ff |.... ..|...=a$..|
+--------+-------------------------+-------------------------+--------+--------+